Why RPM Bugs Me
Its pretty simple really... I got my first exposure to RedHat at the Atlanta Linux Showcase in the mid-90s. At that time, high-speed home internet connections didn't exist so multi-CD Linux distros were a great thing. RedHat and SuSE both had offerings, so I used their distributions for several years.
History
RedHat created the RPM format, and it was fantastic in the early days of Linux. It combined an archiver, an installer, and a software catalog. There's a good article on its development here. Looking back, I think it contributed more to the success of Linux than any other tool.
But times changed. SuSE integrated the idea of a network repository into their YaST administration tool. that let users download the latest package updates directly from the internet. Right away, I started using that to keep my system current. But I also realized that RPM must not have networking features built into it. RPM was beginning to show its age.
Almost simultaneously, I was introduced to Debian by a friend. It was nowhere close to SuSE in terms of GUI polish. I remember calling it "the little engine that could". But he really praised it and I wanted to understand why. So he brought his laptop to work one day and walked me through a distribution upgrade. With a single command-line ("apt-get dist-upgrade") and a few well-answered questions, he completely upgrade his distribution from the internet and everything worked. I was impressed.
At that moment, I became convinced that repository-based software distribution was superior to anything else. I switched my distribution to Debian and I've never looked back. I've tried a few other distributions since that time, but they've all been Debian variants which use the same repository system.
Getting back to RPM...
- RedHat hasn't done any significant updates to it in years. They admit as much in the link above.
- They've chosen to remain compatible instead of innovate. That's an artifact of going commercial.
- up2date (RedHat's attempt to enable repository-based distribution) has two serious issues:
- it doesn't work by default - you must configure it first
- it requires a key - thus giving RedHat the ability grant/revoke access
- YUM was developed to overcome the limitations of RPM, and to circumvent the problems of up2date.
Example
Here's an example of using up2date. First, we need to find out if a package is available in the repository. So we invoke this command.
up2date --showall | grep -i your-package-name
A similar process exists for apt:
apt-cache search your-package-name
Then we need to download the package and install it. We do this in 2 steps with up2date:
up2date --get your-package-name
up2date your-package-name
It only takes one step with apt:
apt-get install your-package-name
Summary
So while RPM itself is still valuable, the features it needs are being built by the community to fill the void left by RedHat. There is a good article at Linux Weekly News that compares package managers like rpm, urpmi, installpkg, and apt. It basically agrees with what I've said here.