Experiences with different distributions.
It seems from most of the posts above that people have serious problems with the way RPM handles dependencies, and even though in theory it is meant to enable automated unattended package installation, it does such a poor job of it that most anybody who's used dselect, dpkg and apt-get is amazed at how smoothly and painlessly they get the job done, even if one has to answer a few questions to get the packages configured right.
This certainly bears out my own experience. I switched from Slackware to RH 4.0 when that came out, and in a very short time was thoroughly fed up with the mess RPM made of my systems. It often got to a point where the dependencies and package state databases were so totally fubared that a complete re-install was needed to get the system back into some sort of stable state. It was completely horrifying trying to run a production server with this kind of mess.
Trying to find a way out, I experimented with SuSE and though the colorful install program looked very spiffy, I was disgusted by how windoze-ish it made everything on my test box. I couldn't even edit /etc/hosts and expect the changes to be effective. Everything had to be done either through YaST or by tweaking a single centralized config file which superceded all the standard config files... it was bizarre and I haven't yet fully recovered from that claustrophobic experience. It was just like being stuck in Windoze-land. I suppose some people like it that way, but I just couldn't handle it.
Then I installed Debian on the test box and haven't looked back since. Debian gives me the feel of an open, powerful and tweakable installation like none of the other distributions. Before I started using Debian, I'd almost been converted over by a friend to the view that expecting any package management system to handle the complexities of maintaining an evolving installation was simple-minded, and that the way to go was to hand-hack everything and know exactly what went where on your system.
(This friend had been running a Slackware distro I'd downloaded in
'94 on a 1200 BPS modem, and he'd just kept upgrading the system by hand-grafting bits and pieces in over the years. He'd actually managed to go all the way from a pre-ELF kernel 0.99pl9 system to having glibc and Enlightnment running on this mongrel box before he finally gave in and installed a new RH distro.)
I tried that sort of thing on a remote production server for a while
and it was a complete disaster. I fared slightly better with a similar
strategy on my laptop. When I upgraded, I'd install a whole new distro on a new partition without destroying the old install, and then I'd boot the new system, mount the old system on /mnt/old, and spend the next six months running some stuff off the new install and some stuff chrooted into the old environment, until I got everything migrated over to the new install, by which time it was time once again to replace the distro (or the laptop).
This wouldn't work for production servers of-course, and I finally
got around to trying Debian. Within a few days I was hooked. Everything was manageable once again and I could install most packages quickly and painlessly without hunting all over the net for packages to satisfy dependencies. I could quickly secure my servers using the non-us sources, and easily replicate them with dpkg --get-selections and --set-selections. Things were looking up.
Then I found instmon (http://freshmeat.net/projects/instmon/?highlight=instmon), a simple script that detects changes on a system and builds deb packages out of them, greatly easing the task of importing new stuff into my installations, and was pretty much all set. I've been maintaining a number of machines using
the Debian tools for a while, and I've never found it so painless. Debian frees up my time for more important stuff and gives me more power to do what I want with my systems with less bureaucratic overhead than any other distribution I've used.
There's only two things I have on my wish list now, and they're not hard to do:
I'd like to have the ability to browse external package archives from dselect without merging their packages info into the local packages database. Something similar to the way GNUS lets me browse external news sources without integrating all their active groups into my newsrc. This would be great, for example, to pick up the latest version of a single package from the 'unstable' tree without forcing my whole system to switch to the unstable distribution.
It'd be great to have a simple instmon-like wrapper around the CPAN shell so when I install new perl modules off CPAN, they automatically get debianized on install and added to the local packages database. This would really not take much to whip up at all and I'll probably do it some lazy Sunday afternoon.
OK, so it would be REALLY awesome to have a package management system that would build a whole distribution from sources and version control the state of the entire root filesystem...
All in all, after using and reviewing a whole bunch of different distributions, I found Debian way ahead of the others in usability and maintainability, and consider the popularity of RH/RPM based distros to be oppressively like the popularity of Windoze:
> RPM has a huge install base and is widely supported by many
> vendors and developers. Switching is not cost-effective. RPM is
> one of the major standards (the other being .deb), and you can't
> simply drop it.
< Windows has a huge install base and is widely supported by many
< vendors and developers. Switching is not cost-effective. Windows
< is one of the major standards (the other being MacOS / Linux /
< whatever), and you can't simply drop it.
> RPM has a big acceptance among users and developers. Forcing
> them to change is not possible or desirable.
< Windows has a big acceptance among users and developers.
< Forcing them to change is not possible or desirable.
The attitude of many vendors providing Linux-related services adds force to this analogy. Recently a client signed up for a server with DellHost. When I wanted to replace the default RH install with Debian, I asked the tech support staff if there were any special hardware considerations I should be aware of. It looked to me like they had some wierd ethernet interfaces in the box.
The tech support people sent me a number of (HTML formatted) mails to the effect that a) RH was the only supported distribution, b) they would not allow me to install Debian on the server (which my client had paid for), c) if I tried to install Debian I would not succeed and they would charge me $100 per hour to re-install RH, and d) even if I did succeed in installing the distribution of my choice on a server owned by my client, they would refuse to support it. I said to hell with you and went ahead and put Debian on the box without any trouble.
Three days later we had a flurry of mails from the tech support staff informing us that we had cut off their back-door 'maintenance port' access to our box and that if we didn't enable it again they would have to reboot the box into single user mode and get root themselves. All this 'for our own good', of-course, since we couldn't possibly be trusted to run our own systems the way we wanted.
Unfortunately, RH seems to have become the Windoze of the GNU/Linux landscape, and this is most evident in the blind adherence to and popularity of RPM packages and RH style distros despite their obvious technical shortcomings in comparison to the alternatives available. I'm waiting for VA to start pre-installing and supporting Debian before I'll buy a box from them. I hope they read FM comments.