Packaging Hell Problems
Because the move to a new blog was imminent, I decided not to post anymore on this blog. However, I’ve encountered a problem which prompted me to do this.
I was using Arch since the October of the last year. I was a proud user, it was a system in which my productivity was high. I ignored all problems reported by others who were bitten by the unsafe updates. Until it happened to me.
The trickster update required making /lib a symlink to /usr/lib, something which no other operating system that I know has done before. “Maybe they had their reasons“, I thought and decided to update — aided in this decision by the fact that a new nvidia upgrade was on the way and I needed it desperately for suspend reasons.
Wrong move. The update couldn’t be done without human intervention so I opened the wiki and followed the instructions there. Removed /lib instead of removing /lib/modules — though the wiki also said that this is safe. And I was left with no way to run any other command.
Later I would find that I had libdl.so in /lib be a simple simlink to a file in /usr/lib. When the update happened, it should have been moved properly but no one treated this case. Since bash needs libdl.so nothing could be run. Moreover, /bin/sh was a simlink to /bin/bash, no busybox was installed. A bricked system.
To add more, this happened Sunday in the morning and I had no backup ISO at hand. The first day when I could make one was Monday, after 24 hours. A day of planned things was lost.
Due to some technical problems, the ISOs that I got on Monday were useless. Same for those of yesterday. Only today did I manage to install a temporary Linux Mint system and solve all the problems caused by the downgrade.
Yes, a downgrade because though Linux Mint says that it is a rolling release, it is not the same kind of rolling release as Arch. Chromium was several versions back and I had to spend an hour carefully moving files around in order to not lose a single piece of history, bookmark or passwords :)
On Arch, GHC was at least «The Glorious Glasgow Haskell Compilation System, version 7.0.3» (this data is from February). Now, I can only install a ghc6 package, clearly back in time. With the cabal cache created using a newer version I’m expecting new problems. Or, I could delete the entire cabal cache and reinstall from the start. Which way is recommended?
Now, I have this system but I don’t intend to keep it forever. Because it is not a rolling release as it should be. I don’t want old packages for stable things.
I want a system which can offer a newer version of a package as soon as possible after the software maintainers declare that version to be stable. A rolling release system, of course. But one which will not brick your system with experimental updates. Arch failed me on this and I’ll think twice before reinstalling it. Mint lies about rolling releases. What other systems can I use?
There are Sabayon and Gentoo but I’m not sure about going there (and I had some boot problems with both of them). And there is NixOS which is in an experimental state. Do you know another? Which one should I install?