I had this question asked on stackoverflow, but it was closed “as not a real question”.
So i decided to remove all rumbling and post that question here, assuming that this stackexchange is for “conceptual questions about software development”
The main question is in the title: Why rpm and deb package formats are not unified into one standard system?
I think that this is very important step, which we need to do, because such format fragmentation is bad, and not only for independant software developers, but for other tools and languages, who reinventing own packaging, like vim, python, ruby, nodejs, php, eclipse and many many others
4
Because that would create anther standard, and you would still have to support both rpm and deb.
The natural way is for one to show that it is so superior that people stop using the other.
3
This is because DEB and RPM are essentially different ways of doing things and could be seen as a sort of disagreement resulting in two separate systems.
Here is an interesting discussion on the matter:
https://unix.stackexchange.com/questions/634/what-are-the-pros-cons-of-deb-vs-rpm
There is an attempt to standardize on package formats in the Linux Standards Base project, however it seems that Debian was excluded from giving input and a subset of RPM was chosen as the package format. From wikipedia:
Choice of RPM package format
The LSB specifies that software packages should either be delivered as
an LSB-compliant installer[11], or (preferably) be delivered in a
restricted form of the RPM Package Manager format.[12]This choice of package format precludes the use of the many other,
existing package formats not compatible with RPM. To address this, the
standard does not dictate what package format the system must use for
its own packages, merely that RPM must be supported to allow packages
from third-party distributors to be installed on a conforming system.Limitations on Debian
Debian has included optional support for the LSB early on, at version
1.1 in “woody” and 2.0 in “sarge”, and later 3.1 in “etch” and 3.2 in “lenny”. To use foreign LSB-compliant RPM packages, the end-user needs
to use Debian’s Alien program to transform them into the native
package format and then install them.The LSB-specified RPM format has a restricted subset of RPM
features—to block usage of RPM features that would be untranslatable
to .deb with Alien or other package conversion programs, and vice
versa, as each format has capabilities the other lacks. In practice,
not all Linux binary packages are necessarily LSB-compliant, so while
most can be converted between .rpm and .deb, this operation is
restricted to a subset of packages.By using Alien, Debian is LSB-compatible for all intents and purposes,
but according to the description of their lsb package,[13] the
presence of the package “does not imply that we believe that Debian
fully complies with the Linux Standard Base, and should not be
construed as a statement that Debian is LSB-compliant.”[13]In general, Debian does strive to comply with the LSB, but there may
be other limitations.[14]
From what I have read the feature sets are so different that it would be very difficult to merge the two. There does seem to at least be a desire to standardize, but if I had to take a bet I would say that Debian’s packagae management system will probably eventually take over, simply because of the sheer market share of Ubuntu and some packagers either only doing Debian packages or doing Debian packages first.
Because the formats were not designed to make things easy for independent software developers, they were designed to make things easy for independent operating system distributors, and RedHat and Debian couldn’t care less what format the other is using. It’s sort of like asking why it’s so difficult to play Vivaldi on an electric guitar.
That being said, people have tried. AutoPackage is the most notable I’m aware of. It doesn’t replace the native package manager, but complements it, which is probably why it was more successful than one-ring-to-rule-them-all attempts. The other thing people commonly use is Alien, which can convert from one format to another. The other common solution if your most important software is only packaged in one format is simply to switch to the distro that supports that format.
As far as independent software developers are concerned, most take one of three approaches. Some open source projects just distribute in source format and count on distributions to handle the binary formats. Closed source software on Linux is usually distributed with some sort of custom bash script installer. Additionally, open and closed source developers frequently distribute both rpm and deb formats. It takes maybe one workday to set it all up, then you rarely have to worry about it. If it wasn’t so easy, more people would be clamoring for a change.