The “every Linux distribution should have the same package manager” fallacy

I have heard several times that every linux distribution should have the same package manager (where it is understood that there is one-too-many within the rpm vs deb), and it was mentioned once again recently in a well publicized video (see on linux hater blog)

The argument goes as follows: doing packaging takes time, and making packages for every distribution is a waste of time. If every distribution used the same package system, it would be much better for 3rd party distributors. Many people answer that competition is good, having many distributions is what makes Linux great – [insert usual stuff about how good Linux is].

While it is true that multiple packages systems means more work, saying that there should only be one is kinda clueless – I wonder if anyone pushing for this has even done any rpm/deb pacaking. What makes deb vs rpm a problem is not that they are different formats, like say zip vs gunzip, but that they are deployed on different systems. A RHEL rpm won’t work great on Mandrake, and even if a lot of debian .deb work on Ubuntu, it is not always ideal. The problem is that each distribution-specific package needs to be designed for the target distribution. To build a rpm or a deb package, you need:

  • To decide where to put what
  • To encode the exact versions for the dependencies
  • To decide how to handle configuration files, set up start/stop scripts for servers, etc…

Basically, almost everything which makes the difference between a distribution A and B ! For file locations, the LSB tries to standardize on this, but some things are different, like where to put 64 vs
32 bits libraries. One distribution may have libfoo 1.2, another one 1.3, so even if they are compatible, you can’t use the same for every distribution. Or some libraries do not have the same name under different distributions.

So requesting the same package manager for every distribution is almost equivalent to asking that every distribution should be the same. You can’t have one without the other. You can argue that there should be only one distribution, but don’t forget that Ubuntu appeared like 5 years ago.

3 thoughts on “The “every Linux distribution should have the same package manager” fallacy

  1. What is wrong with the apt-get command. Im not old skool or anything but its worked fine for a long time, and if its not broken…

    • There is nothing wrong with the apt-get command – but the point is that even if every distribution followed the same packaging format (say every distribution use .deb), it would not be enough to enable interoperability. Say RHEL uses dpkg tomorrow instead of rpm, would it mean that a .deb from debian repo would work on RHEL ? Of course not. The packages versions are different, core libraries have different ABI, the boot system is different which matters when you install/reconfigure servers/daemons, etc… So you would need every distribution to agree about which version to use when.

      A package is related to how a distribution is organized (where and how to put configuration files, where to put libraries, dependencies names and versions), so you would have to enforce the same organization, dependencies, for each distribution. Once you enforce this, you end up forcing every distribution to be almost exactly the same.

  2. And therein is Linux’s big problem. Open Source community Can fix this if they wanted to, that’s what Open Source is for. Take Windows for example. Most programs 32 and 64 bit are cross compatible from windows XP, Vista and Windows 7.They all use the same formats for distribution, exe. rar, zip. There is no reason the Open Source community cannot learn from this example and create a tool that would configure all formats to work on the same system provided every system has the compatibility to work with a broad spectrum of libraries. Linux distros thwarts this by being too selective in how they choose to work. This creates all the problems you see for all users. New users just have to accept the old outdated adage that, ” That’s the way Linux is and you just have to live with it.” Poppycock. There’s no reason for this outdated thinking. It’s time the Open Source community take Linux and transform it from this tool of the stone-age and bring it into modern times. Yes, i know Linux isn’t Windows and works differently than Windows but that doesn’t mean it cannot have better cross compatible library systems built in to solve these problems.

Leave a comment