The importance of staying with linux built-in package management…

I just upgraded my Fedora server from 20 to 22.  (I know that I have procrastinated..)  A couple issues were encountered.  The first of which was fairly catastrophic.  After the usual fedup (FEDora UPgrade, which by the way was rather short-lived, from FC18 until FC21, being replaced along with yum by ‘dnc’) stuff, upon reboot, the server hung when it was trying to load the Gnome Desktop Manager.  I really think that was probably a problem with Gnome 3 and my hardware (since I could log in fine using ssh), so I got around this by the following:

# sudo dnf install lightdm lightdm-gtk

# sudo sustemctl disable gdm

# sudo systemctl enable lightdm

(If you haven’t set up sudo, you really should)  After those steps, a simple reboot, and presto!  Finished booting just fine.

The next problem encountered was one that fully illustrates the importance of staying within a modern Linux distribution’s built-in package management system….

Modern Linux Distributions use package managers, a partial list follows:

RPM: Used by RHEL, Fedora, CentOS, Yellow Dog, OpenSUSE….

DEB: Used by Debian and Ubuntu, Mint, SteamOS, Trisquel….

(Those were the ‘big two’, encompassing many different distributions, but there are many more….

Most people know that my server handles an icecast/ices streaming server.  However, ices 0.4 refused to start, giving the following error:

/usr/local/icecast/bin/ices: error while loading shared libraries: libperl.so.5.18: cannot open shared object file: No such file or directory

As part of the upgrade, perl was upgraded from perl 5.18 to 5.20, and libperl.so now points to libperl.so.5.20.  The problem arose from the fact that ices 2 is the version in the package repository.  However, it has no mp3 support, instead streams ogg.  So, for that reason, I had compiled by hand ices 0.4.

So, the only way to fix this libperl issue was to re-compile ices. (A good reason to keep the src of programs that you compile in your /home dir).

So, I jumped to the ices0.4 subdirectory and did the following:

# ./configure    (so that ices would pick up the new perl library)

# make

# sudo make install

After that, everything is fine, but, as I’ve always said, in a modern Linux distribution, try to minimize hand compiled programs.  Not always possible, but definitely preferred.

😎