1 post tagged “rants”
One of the things that plagues any OS is an availability of software, and the ability to install said software. On Windows, it comes easily, and on MacOS X it's even easier to install. But those are primarily binary-based operating systems, so there isn't any need to compile. Everything is already there in nice, neat packages.
On *nix, the story is a lot different most of the time. Sure, there are binary installers like Google Earth or Java, but for the most part if you want to install something, that means downloading the source, './configure'ing, 'make'ing it, and 'make install'ing it. That's assuming you have all the dependencies, and the only way to know that is assuming that the package tells you what exact dependencies you need. In response to all this, RPM and .deb packages evolved.
RPMs and .deb packages do not clear up this dependency hell. You need some sort of manager. Thus comes 'yum' and 'apt'. These programs are supposed to find out what dependencies you want, install them, and then install the software that you want. yum is, unfortunately, incredibly slow for my tastes. apt is very quick and efficient, and handles .deb and RPM packages just fine. The downside is that these two tools rely on a source for their information, generally internet sites called 'repos.' These repos have all the dependencies that one would need to install software, and almost always have a ton of software for you to choose from.
What happens when you want to install, say, OpenXchange? Well, the paid version includes a script to install itself and download all the packages that one might need... assuming that you are running RHEL 4 or SUSE Enterprise Server 9. Say you don't want to put down money for RHEL to try out software you don't want, but at this point SUSE Server is at version 10. What do you do? Not install it on 10, that's for sure.
Invariably, on any RPM-based distro that I attempt to use, I quickly run into dependency hell. In the case of OpenXchange, the packages needed are not on the install DVD for SUSE 10. So I went looking around the internet. You download the RPM package you need (package 123), try to install it. ERROR - This package needs XYZ package before it can be installed. Search for package XYZ, download, install, ERROR - You need package ABC for this package to install.
Search, download, install ABC, then XYZ, then 123. Try to install 456, search for DEF, install DEF, then 456. Install 789... see where this is going? The best part about this is that you have to find RPM packages for SUSE. You want this specific package? Oh, I'm sorry, the newest one is only built for RHEL. There is an older one for SUSE 9.x if you want to try that.
With the knowledge that OpenXchange is near impossible to install on SUSE 10, I'm forced to an outdated server edition of 9. Download all 6 CDs for 9, install 9, install OpenXchange, and everything works fine. Why? SUSE Enterprise Server 9 contains all of the packages you need right on the CDs. No external repos or downloads needed.
What happened to all those packages that I needed between SUSE 9 and SUSE 10? They were never built, and by the looks of it no one wants to take the time to update the packages.
Why must this be such a pain, you might ask? Because even though RPM follows a specific format on how the package itself is created, each distro that uses RPM needs files in different places. That package that you downloaded for SUSE 9 may not work right on SUSE 10, and even may not work right on RHEL. Each distro may have files in different locations, and SUSE might expect something in /etc/program, but on RHEL it might actually be in /opt/program, or /usr/local/program.
RPM suffers from a splintering of the distros that support it. By contrast, I haven't run into an issue on Ubuntu wherein I download the Debian-only package. Why? Most Debian offshoots stay fairly close to their roots, so that means an Ubunutu package has a fairly high chance of working fine on Debian itself, or SimplyMepis, or any another Debian offshoot.
Hopefully RPMs will one day be less distro specific so that it makes life easier. Until then, if I can't find it in yum, I'm hesitant to try to download an RPM I install off of the internet.