I am not even going to kid myself that I am an RPM expert, but I have built my own rpms, I know what macros are for and I know that I can build source rpms without having to have escalated priviledges (mostly). Neither am I an expert on all the other various package management technologies, but the war raging on -tech got me thinking that I cannot understand what the fuss is about and as a result, I want to put forward my experiences.
I am not even going to kid myself that I am an RPM expert, but I have built my own rpms, I know what macros are for and I know that I can build source rpms without having to have escalated priviledges (mostly). Neither am I an expert on all the other various package management technologies, but the war raging on -tech got me thinking that I cannot understand what the fuss is about and as a result, I want to put forward my experiences.
I can still remember my first installation of linux - it was in 2000 and I was handed a copy of RH6.2 - w00t! I duly installed said OS, not really having a clue what I was doing or what the OS was up to, but I bumbled and stumbled on and at some stage my external modem dialed up and connected to the internet - result. I do not really remember a lot about that distro in those days, but I do remember explaining to a buddy of the nightmare I was having trying to install stuff. He immediately informed me of 'Dependency Hell'. This has now become a term that has seemed to have stuck with anything relating to any problem where ever there is RPM involved. I must admit that it was too much work for me to try and determine what dependencies were missing and to be truthful, I had no idea what I was doing, therefore installing applications was a no-no. Speaking to people nowadays, it seems that this was not a problem limited to noobs such as myself.
I then left linux for a brief period and entered the dark and mysterious world of BSD, playing around with Free & Open before being introduced to Gentoo. With the familiarity of the ports setup and the fact that shit worked under linux, I was hooked. I installed Gentoo linux and was amazed by 'the control' I had. I was amazed that I was compiling my compiler to be more uber optimal at compiling. Total l337 h4x0r, me! Gentoo worked. Applications installed and all was well. I did not mind that everything had to be compiled every time or the fact that it was bleeding edge, i was just happy that everything was working and working to what I believed was total, optimal l337ne55 ... As the years went on, my interest for compiling everything slowly, but surely, started to wane. I started moaning that I could not do anything until X had recompiled and when open office came along with a new version, I would effectively down tools and try to think of activities I used to do before computers and the internet. Only to find out that there was not much... So the machine would be crunching away at night and in the morning I would have the latest greatest software. I believe that there are still pseudo awards for who people who have installed Gentoo from stage 1 on the slowest machines... Masochists!
Just like to add here a quote from Insomnia in #solaris some years back:
<@insomnia> it only takes three commands to install Gentoo
<@insomnia> cfdisk /dev/hda && mkfs.xfs /dev/hda1 && mount /dev/hda1 /mnt/gentoo/ && chroot /mnt/gentoo/ && env-update && . /etc/profile && emerge sync && cd /usr/portage && scripts/bootsrap.sh && emerge system && emerge vim && vi /etc/fstab && emerge gentoo-dev-sources && cd /usr/src/linux && make menuconfig && make install modules_install && emerge gnome mozilla-firefox openoffice && emerge grub && cp /boot/grub/grub.conf.sample /boot/grub/grub.conf && vi /boot/grub/grub.conf && grub && init 6
<@insomnia> that's the first one
Anyway, this continued until my breaking point was reached when I needed to install my new laptop and I did not really have the time to compile everything from source to have a working linux machine, so I opted for the package install. Downloaded all the CDs. Burned them to disk and then started with the package based install. Superb I thought. Not as optimal as it possibly could be, but hey - I have a nice fast laptop now, I will never know the difference. Until it was that for whatever reason - to this day I am still not sure, my installation decided to go and get a newer version of KDE from the web and build it. Bork. Recompile Xorg and a whole lot of other crap that was bound to go on for hours, so I decided enough was enough. Give me a package based distro that works.
It just so happened that someone in the office had a copy there and then of Fedora Core 1. So I installed it with the fear and dread of 'Dependency Hell'. I suppose with expecting the worst and then things actually working - updates package installation, maybe my assessment of the OS was over exaggerated, but I was impressed. Since FC1, I have used hundreds of machines running RHEL2.1, 3, 4 & 5 - as well as most Fedora Core releases on desktop/home machines (except 2 and 4 which were shit) and I honestly have only ran into issues with dependencies out of my own stupid fault.
I can say though, that I am not impressed by the whole MP3 patent issue which makes RH/Fedora so anal retentive. As a result has led to the spin off of repo providers of a handful of applications that are not in the base distro. I have had to learn which repos to trust in terms of being well maintained and also had to learn (the hard way) that they are often not aware of each other, often competing with each other in the providing of packages for FC. This I feel is bad for the end user in terms of providing an easy, elegant solution / offering. It is possible that it is off putting and would lead them to maybe look at another distro or OS.
I am also not impressed that the release cycle of Fedora is about on a par of that of the reproductive time cycle of a rabbit. Popping out new FC's every time I seem to have just got around to re-installing my machine with the last release. It is for this reason that I am currently using Mandriva, which seems to have a sensible release cycle as well as the ability to upgrade. Good for now, but I will also be giving FC10 a spin when it is finally released.
I have used RHEL in the enterprise for all manner of uses - from the critical to the trivial - and I have found that if you use the OS correctly, you will be faced with no problems using RPM to manage packages. And I have no doubt that the same can be said about dpkg or any other package management utilities. And that is the important factor here. It is how you manage the OS which will ultimately depend on how well it will work. If you want to break the package management - as with any other part of the OS, then this can be done with relative ease, but understand that it is most likely the fault of the Admin and not RPM.
Over the years in our environment we have stood by the rule that if the package is not provided by the OS, then we package the application ourself and maintain the package from our own repository. We have built up a repository for RHEL of over hundreds of packages now, it may even have passed the 1000 mark. It has stood us well up until now, and not one of our admins have ever complained of 'dependency hell'.
I have seen recent conversations which have attributed almost everything to being the fault of RPM. Even to the point where I wonder that if Apophis does smack into the earth on 2029 or 2036, RPM will be blamed for that as well? My point is that a good system administrator should not be falling down those types of pitfalls in the first place no matter what package management software they chose to use.