On Tuesday 18 December 2007, Mike Miller wrote:
> On Tue, 18 Dec 2007, Samir M. Nassar wrote:
> > On Tuesday 18 December 2007, Mike Miller wrote:
> >> It seems to me that there are several package management tools and that
> >> different Linux distros use different tools.  I assume that several
> >> Linux distros are in compliance with the LSB (for locations of
> >> libraries and such).  Why can't all package management tools from such
> >> distros be interchangeable?  What is the source of incompatibility, if
> >> there is any?
> >
> > This is a philosophical question and the answer is philosophical.
>
> I doubt it.

Doubt is good. :) It promotes free inquiry, also a matter of philosophy. :)

> > The simple answer is that different distros have different reasons for
> > being.
>
> But are they compatible?

As it stands, no the systems are not compatible. 

> > A more complex answer would be that it is hard to make community distros
> > like debian and gentoo have the same priorities as Fedora or Ubuntu or
> > openSUSE. For one, you can't just pay a software engineer to make a
> > package management tool that can work with all packages. You can, but
> > your money won't be well-spent.

> Why can't I use four different package systems on the same installation of
> one distro?  The reason isn't philosophical -- there is either a technical
> reason why I can't do it, or I can do it.  The distro might come with only
> one package management program, but they are all freely available so I
> ought to be able to compile them all and use them all, if I want to.

Why? Well it isn't impossible, just a major pain in the ass.

Let's take two scenarios: a source-based distro and a binary-based distro. As 
examples I'll use Gentoo and Debian respectively.

You can install RPM on Gentoo. Insofar as that goes you can install any 
software on Gentoo, provided you can meet the dependencies. In gentoo you can 
even install binary packages. There are several ways to install binary 
packages. One way is to have a build-machine and secondary machines. The 
build machines syncs against the rsync servers, downloads the new software 
packages and builds binary packages. You can use these binary packages in 
your secondary machines. This turns your source-based Gentoo distro into a 
binary-based distro. As a consequence, the way you treat your secondary 
machines becomes much like you would treat them if they had Debian installed.

So why can't we use deb or rpm to install these packages? For the most part 
because a gentoo system wouldn't know what you installed.

A Debian system, binary based, can install custom software. Anyone, with a 
little bit of work, can create custom chroots to modify and create 
custom .deb binaries and then deploy them on her system. YOu can also install 
software from source. The trick with installing software from source is that 
you can't keep track of it using the regular debian tools. (Users who use a 
lot more Debian than I can chime in and tell me how wrong I am.)

What you are getting at, I think, is why don't all these systems share an API 
so that whatever redhat chooses, or Ubuntu, or X-distro chooses for a package 
management, that they all keep track of the same stuff.

Personally, I don't see why anyone would want to use rpm on debian, portage on 
openSUSE, or YAST on Slackware.

-- 
Samir M. Nassar
samir.nassar at steamedpenguin.com