URPMI
Sunday, 04 April 2004
While I’ve been using Mandrake Linux 9.2 as my home desktop, I have found a certain type of tool almost too good to be true for a Linux user. Easy package management. A non-Linux user might ask, “What is a package?” and also, “How was it before easy package management?”
When I first looked at Linux in ’99 and ’01, I found it to be severely difficult for an untrained Unix user to install programs. I decided to bypass Linux and use Windows where things seemed to be easy. Besides, I reasoned, why fiddle with this mess, I wanted to get work done on my computer!
A couple of years went by and I wanted to build my own workstation, but figuring the cost of Windows into the the project wasn’t an option. I decided it was time I take a look at Linux again. To my surprise things had gotten quite a bit easier to use… except again for the packaging. Okay, Okay, what is a package? There are several different types of packages on Linux (tgz, deb, rpm) but I will concentrate on rpm. Rpm stands for Redhat Package Manager. It initially made installing software on Redhat Linux easier, but had grown into a format used by a wide variety of Linux distributions. The main ones that I can think of are Redhat/Fedora, SUSE, and Mandrake Linux.
The packages were released in a distribution specific file. So you might find an rpm build specifically for Fedora Core 1, SUSE 9.1, or Mandrake Linux 9.2. The package is similar to an install file (setup.exe) in Windows. “Wow! I double click the rpm and the program installs!” was my first reaction.
Most rpm files however required that certain software already be installed on my computer. At times these could be some really obscure files due to the wide array of open source tool kits, widgets, window managers, etc… So if my computer didn’t have a specific .so file (similar to a .dll file in Windows) the software couldn’t run.
I decided to plug away and learn how to be a real man. I would have to continue on the long and arduous journey of compiling and searching for missing dependencies. I heard of numerous similar stories of people running into “dependency-hell.” While maybe not the nicest term, it aptly described the situation of many people trying to install software on Linux. Hours of grueling work and searching on the net to get something up and running on your system. My double clicking software installing days were over… because the typical went something like this:
I would find a brand-new-super-cool-neato program that I was just dying to run. Obviously if I didn’t have this program my computer would not be super cool anymore. I would download the rpm file and double click it or type “rpm -i packagenamehere.rpm.” at the command line to install. Oh boy… here we go… missing dependencies. Sometimes I would throw in the “–nodeps or –force” into the mix to see if it would help. Often times it would not. Okay, download that file it says it is missing and install it… oh wait, that file has missing dependencies also!
I began to get tired of searching out missing shared object files to run some obscure package only to find out that when I found the package that had the file in it, it also needed another altogether different package so that it too could be installed. I thought, is this what “manhood” is all about?
Amidst my searching for better days in Linux-land I found a program called YUM. Yellow dog Updater, Modified was the official lingo behind the acronym. It was just what I was looking for. To quote from the YUM webpage:
Yum is an automatic updater and package installer/remover for rpm systems. It automatically computes dependencies and figures out what things should occur to install packages. It makes it easier to maintain groups of machines without having to manually update each one using rpm.
While a great program for Yellow dog Linux or Redhat/Fedora, I couldn’t seem to get it working for Mandrake. The main reason behind the switch to Mandrake from Redhat by the way, was that ALSA would find my two sound cards in Mandrake, while in Redhat it would not without significant messing around with config files.
Enter Urpmi. Urpmi is Mandrake’s program for easily installing and updating packages. If I have my repositories setup correctly, I barely ever think of dependencies anymore. It truly is amazing. It even has a graphical front end to the system. I click the check boxes in front of the programs I want, bingo, software downloads and installs on my computer. It could be compared to Lindows’ Click-n-Run warehouse. Only free!
That’s the story. Here’s the info. If you want to setup your Urpmi repositories for maximum easy-ness for program installage on your computer, visit some of the following sites. Remember, these places often deal with the command line side of Urpmi as it is a command line utility. However, once you have the repository setup with Urpmi you can use Mandrake’s install utility, Rpmdrake. Rpmdrake is a graphical user interface to Urpmi. If you have Mandrake installed, search for it in your menus.
Urpmi Info
- Urpmi mini-HOWTO – http://myweb.tiscali.co.uk/eggnbacon/docs/urpmi-howto/
- Easy Urpmi setup – http://urpmi.org/easyurpmi/index.php
Urpmi Repositories
- http://norlug.org/~chipster/rpm_index.pxml?cat=4
- http://plf.zarb.org/packages.php
- http://rpm.nyvalls.se/index9.2.html
- http://sluglug.ucsc.edu/macromedia/site_ucsc.html