junk food for the brain …
Archive for March, 2009
6 Ubuntu Package Management tips for the Fedora User
Mar 9th
After deciding that compiling Boxee for Fedora was quite a futile attempt, I installed Ubuntu 8.10 (Intrepid Ibex) on my desktop PC, just to run it.
One of the first things I needed to do was install the latest updates for it. Thats when I realised that I didn’t know nuts about software installation in Ubuntu, other than it was apt-get something.
After reading up the ubuntu docs, and a little googling around, I’ve compiled a list of common tasks I do with yum on Fedora and its Ubuntu equivalents.
- yum upgrade is apt-get upgrade
This one is a little tricky. You should first run apt-get update to get the updated list of files in from the repository. Then follow up by the apt-get upgrade.
- yum search packagename is apt-cache search packagename
The indispensable yum search is apt-cache search. Good to look through the repositories to determine which package you need to install. Just like yum, you could search for terms or keywords, apt-cache will give you the packages that have matching descriptions.
- yum info packagename is apt-cache show packagename
Like yum info, this provides descriptions on the packages you want to install. An interesting addition comapred to Fedora is the Suggests: column, which gives you additional packages that you might want to install to enhance functionality of the program.
Here’s a sample:-
raja@atom:~/Examples$ apt-cache show mplayer Package: mplayer Priority: extra Section: multiverse/graphics Installed-Size: 10088 Maintainer: Ubuntu MOTU Developers <ubuntu -motu@lists.ubuntu.com> Original-Maintainer: Ubuntu MOTU Media Team <motumedia @tauware.de> Architecture: i386 Version: 2:1.0~rc2-0ubuntu17 Replaces: mplayer-nogui Depends: libaa1 (>= 1.4p5), libartsc0 (>= 1.5.9), libasound2 (>> 1.0.17), libatk1.0-0 (>= 1.20.0), libaudio2, libaudiofile0 (>= 0.2.3-4), libc6 (>= 2.7), libcaca0 (>= 0.99.beta13b-1), libcairo2 (>= 1.2.4), libcdparanoia0, libcucul0 (>= 0.99.beta13b-1), libdbus-1-3 (>= 1.0.2), libdbus-glib-1-2 (>= 0.71), libdv4, libenca0 (>= 1.9), libesd-alsa0 (>= 0.2.35) | libesd0 (>= 0.2.35), libfaac0 (>= 1.26), libfontconfig1 (>= 2.4.0), libfreetype6 (>= 2.3.5), libfribidi0 (>= 0.10.9), libgcc1 (>= 1:4.1.1), libggi2 (>= 1:2.2.2), libgif4 (>= 4.1.6), libgl1-mesa-glx | libgl1, libglib2.0-0 (>= 2.12.0), libgtk2.0-0 (>= 2.14.1), libjack0 (>= 0.109.2), libjpeg62, liblircclient0, liblzo2-2, libmad0 (>= 0.15.1b-3), libmp3lame0 (>= 3.98), libmpcdec3, libncurses5 (>= 5.6+20071006-3), libogg0 (>= 1.0rc3), libopenal1 (>= 1:1.3.253), libpango1.0-0 (>= 1.21.6), libpng12-0 (>= 1.2.13-4), libpulse0 (>= 0.9.8), libsdl1.2debian (>= 1.2.10-1), libsmbclient (>= 3.0.24), libspeex1 (>= 1.2~beta3-1), libstdc++6 (>= 4.1.1), libsvga1, libtheora0 (>= 0.0.0.alpha7.dfsg-1.1), libvorbis0a (>= 1.1.2), libx11-6, libx264-59 (>= 1:0.svn20080408), libxext6, libxinerama1, libxt6, libxv1, libxvidcore4 (>= 1:1.0.0-0.0), libxvmc1, libxxf86dga1, libxxf86vm1, zlib1g (>= 1:1.1.4), ttf-bitstream-vera, mplayer-skins, ttf-dejavu Suggests: w32codecs, libdvdcss, mplayer-doc, ladspa-sdk Conflicts: mplayer-nogui Filename: pool/multiverse/m/mplayer/mplayer_1.0~rc2-0ubuntu17_i386.deb Size: 4425834 MD5sum: c34e4650c294bf0277d37432bdd81bde SHA1: da382398f120a0ecb421ac160d4d5676c081b27a SHA256: edf9c491e09c9f215a57db60df2ba94d17561ea20d890d576f5202a760dd5ad0 Description: The Ultimate Movie Player For Linux It plays most mpeg, avi and asf files, supported by many native and win32 DLL codecs. You can watch VCD, DVD and even DivX movies too. The other big feature of mplayer is the wide range of supported output drivers. It works with X11, Xv, DGA, OpenGL, SVGAlib, fbdev, but you can use SDL (and this way all drivers of SDL) and some lowlevel card-specific drivers (for Matrox/3dfx/SiS) too! Most of them supports software or hardware scaling, so you can enjoy movies in fullscreen. . This version includes the Gtk GUI Bugs: mailto:ubuntu-users@lists.ubuntu.com Origin: Ubuntu </motumedia></ubuntu>
- yum deplist is apt-cache showpkg
Provides similiar information, giving you an idea of the additional dependencies required to run the program.
- yum grouplist is tasksel –list-tasks
Yum in Fedora has groups. So does Ubuntu. Finding it involved a little google-fu, but they work relatively the same. I sort of like the way tasksel lists its already installed / available packages. Seems more neat to me, eventhough new users may encounter a WTF??? moment looking at the the u & i prepended on the task names.
- yum groupinfo a combo of 2 separate tasksel commands
yum groupinfo gives you a description of the task or group, as well as a list of packages that need to be installed To get similiar info from tasksel, run tasksel –task-desc lamp-server to get a brief description on the task. e.g.
raja@atom:~/Examples$ tasksel --task-desc lamp-server Selects a ready-made Linux/Apache/MySQL/PHP server.
To get a list of packages that task installs, run tasksel –task-packages taskname.
raja@atom:~/Examples$ tasksel --task-packages lamp-server libwrap0 apache2 mysql-client-5.0 tcpd libapache2-mod-php5 apache2.2-common apache2-utils php5-common libaprutil1 php5-mysql libmysqlclient15off libdbi-perl libplrpc-perl mysql-server openssl-blacklist libdbd-mysql-perl mysql-server-5.0 libnet-daemon-perl libapr1 libpq5 ssl-cert apache2-mpm-prefork mysql-common
I guess that would be it for this post. I’ll post more if I find anything else that I may be missing.
Sources for my info:-
F*** my life via bash the pythonic way
Mar 1st
Being a little bored today, I decided to surf around. Thanks to my friend Thaweesak, I got this site called F*** My Life.
A few hilarious stories and minutes later, I realised they had a web api. Thats when I got an epiphany!!! Why not get a random story from here to cheer me up on demand? And for a linux junkie, what better way than through a terminal?
Since I have been experimenting with python for awhile, what better way to practice a new language than something fun?
Here’s my script:-
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
#!/usr/bin/env python # Ugly script to get a random quote from www.fmylife.com # Yeah, so ugly I dont even bother catching exceptions # # Meant to run on python 2.5++ as I'm using the inbuilt ElementTree package # import urllib import xml.etree.ElementTree as ET import cStringIO FML_SITE_RANDOM = 'http://api.betacie.com/view/random' paramsDict = { 'language':'en', 'key':'readonly'} encodedParams = urllib.urlencode(paramsDict) try: fmldata = urllib.urlopen(FML_SITE_RANDOM, encodedParams).read() fmldata = ET.XML(fmldata) author = fmldata.findtext('items/item/author').strip() if len(author) == 0: author = 'anonymous' peopleAgreed = fmldata.findtext('items/item/agree').strip() peopleDisagreed = fmldata.findtext('items/item/deserved').strip() story = fmldata.findtext('items/item/text').strip() print "Think your life sucks?\n" print 'This happened to ' + author + '.' print '' print story + '\n' print peopleAgreed + ' reader(s) agreed' print peopleDisagreed + ' reader(s) have seen worse. ' print print 'F*** My Life' print 'http://www.fmylife.com' except: msg = '''Whoops!!! Some error, probably your connection. I guess your life sucks after all.... :(''' print msg |
Just chmod 755 it and place it in your ~/bin directory. Then just type in fml in your terminal for some random F*** ups.
Assuming you have Fedora 10 or Python 2.5++ installed, it should work perfectly.
Here’s a shot of it running:-
My F*** My Life script in action.
Sources I used to create this program:-
- F*** My Life Web Api
- Python v2.6.1 documentation
- YDN Parse XML using Python
- YDN Make Yahoo! Web Service REST calls with Python
The wonders of Open Source Technology. w00t!!!