Ubuntu the Broken

Ubuntu is the distro with by far the most mindshare and presumably the most usershare of any distribution. But people should perhaps stop promoting Ubuntu and its derivatives. I have a long history of Linux usage, spanning over ten years, starting literally with Best Linux 2000. None of the Linux distributions have given me as many unintentional headaches as Ubuntu has given me. While I may have scratched my head a few times when playing with Gentoo, that was intentional. Things breaking randomly is unintentional. Canonical's Ubuntu will likely never bring about YOLD, because it is not good enough for day-to-day usage. It fails its easy-to-use mantra on most fundamental level: stability and reliability.

Let's start with something that is far too common in Ubuntu: You update something and discover that something else is now broken. In some cases, the thing you updated is now broken. Ubuntu claims its LTS versions are stable, but they also still break from time to time for no apparent reason. This tendency of breaking is something I have experienced rarely on this decade in other user-friendly distributions. Those include Mageia, openSUSE and Fedora. How come? Most of the packages on Ubuntu are not officially supported, but come and go as they please without any interest from Canonical that they even work once they land in repositories. Those are the packages in Universe and Multiverse repositories, the clear majority of packages available to Ubuntu. Only a handful, 4475 packages in 14.04 LTS to be exact, are actually maintained by Canonical (according to pkgs.org). Compare that to Fedora, which maintains a whopping 32482 packages in its official main repository, all subject to same level of scrutiny. Even openSUSE supports directly 20125 packages in main alone. Looking at packages from that viewpoint, Ubuntu is the least QA'd distro available. And that is not a good thing.

But mismatch between level of scrutiny packages face is only a part of the problem. Ubuntu itself is forked from Debian testing with some packages from sid the unstable. That may not be a problem in itself, but combined with differing levels of scrutiny and testing of packages therefrom causes an inherent problem with stability. The default state of Ubuntu is thus instability. It doesn't even matter much if the version you are running is LTS, as it still has roots in testing/unstable version of Debian. In fact, sometimes running an LTS can be even worse decision. Ubuntu 14.04 LTS, which is to be supported for 5 years, does not have a long-term support kernel. That is, the kernel ticking in LTS is not supported by the global upstream developer community of thousands of developers. The responsibility rests solely on shoulders of Canonical's ability to backport and patch everything in timely fashion. Again, that is not a good thing.

And the problems don't end there. Let's go deeper! Debian self is essentially a distribution that is repackaging and testing software from upstream. Then it decides what to use in its base distribution and tries to implement it to its best ability. Curiously as a side note, my only kernel panic ever has happened with Debian stable, by the way. Twice. It is having its fingers on upstream development by second-hand approach, providing feedback and patches. Yet majority of work is done "in-house", meaning packages are patched specifically for Debian in case upstream rejects patches from Debian developers or even for ideological reasons (see: IceWeasel). That process is then repeated by Canonical, further patching already uniquely Debian patched packages when necessary, such as glibs to work with Unity. It's a mess of multiple times patched software that may even end up being incompatible with the rest of the world. Not good.

Further down the rabbit hole we encounter package managers. Right now, apt is perhaps the least advanced package manager, or at least less advanced than rpm counterparts yum, dnf and zypper. While yum and zypper have enjoyed delta-updates by default for years now, apt still doesn't provide those. In addition, the dependency checking of apt is very basic compared to SAT solver heuristics zypper and dnf provides. Finally, there are differences between packaging process itself between rpm and deb, which may be cause of troubles as packages are unpacked into system. That would certainly explain, why all rpm-based distros in my use have been far more reliable in updating things, even when they do not have intelligent solvers for dependencies.

What I'm trying to convey here, is that Ubuntu seems to be broken to the core and breaks more every step of further development it does the moment it forks off Debian testing/sid. It has adopted a development model not suitable for producing a robust distribution. And that brittleness trickles down to numerous Ubuntu derivatives such as Mint, Zorin and Netrunner. There are just so many problems with all of those. Mint in fact has adopted its own update cycle where it attempts to further test packages from Ubuntu repositories and groups them by their safety. Layers upon layers of testing and things still just break.

Talking with other people running Linux, I am not alone with the problematic experiences. One complained that Ubuntu recently broke printing after updates, but "it's just business as usual". Another said he is hesitant to upgrade his server running Ubuntu 14.04 to 14.04.1, a mere point release, simply because he "excepts some things to break". Things breaking just like that should not be a norm, something to be excepted and just sucked up. Not when there are alternatives where package breakage is not the norm. Advanced users can cope with it, but for normal user such random breakage is a big glowing red no-no. Yet Ubuntu and friends are explicitly marketed as newbie friendly distributions! Nothing is farther from the truth! Need long-term support? Go with CentOS. Nice desktop distro? Fedora, Korora, Mageia or openSUSE. Ubuntu arguably didn't even do that much to bring user-friendliness to average user. Mandrake did it first.