Take the 2-minute tour ×
Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems.. It's 100% free, no registration required.

Why isn't there a unified package manager that acts as an interface between the end-user and the underlying low-level package manager (apt, yast, pacman, etc.)?

Is it hard to do and therefore not practical, or is there a genuine obstacle making it impossible to do?

share|improve this question

migrated from programmers.stackexchange.com Oct 31 '11 at 13:43

This question came from our site for professional programmers interested in conceptual questions about software development.

12  
My guess is that we will get a unified field theory long before we get a unified package manager... –  Yannis Rizos Oct 31 '11 at 13:30
21  
The problem, in a nutshell –  Shadur Oct 31 '11 at 14:15
    
@Shadur A spot-on xkcd reference! :D –  rozcietrzewiacz Oct 31 '11 at 14:23
2  
For the exact same reason we don't want a single distribution - I like the way my distro does it. If you don't, then you're free to use another or write your own. Before you know it, you have as many package managers as you do programmers. –  new123456 Oct 31 '11 at 20:36
2  
don't you mean the low-level package managers rpm, dep, source? The ones you listed are, themselves frontends. –  frogstarr78 Oct 31 '11 at 23:17
add comment

6 Answers

up vote 31 down vote accepted

First of all, there is. The problem is not that there is no unified package manager, the problem is there are ten of them--seriously.

Let's take my favorite: poldek. Its a user front end for package management that can run on several different distros and manage either rpm or deb packages. Poldek doesn't do the stuff rpm does (it leaves that to rpm) and just sends the right commands without the user having to figure out all that mess.

But the problems don't stop there. Everybody has a different idea of what a user front end is supposed to look like and how it should function and what options it should expose. So other people have written their own. Actually many of the package front end managers people use in common distros today are able to handle more than one backend.

In the end, however, the problem (or advantage) is people like things to function exactly the way they want, not in some meta-fashion that tries to satisfy everybody only to fail to really make anybody happy. This is the reason we have umpteen gazillion distros in the first place. It's the reason we have so many different Desktop Environments and Window Managers (and the fact those are actually different kinds of things at all).

There are still outstanding proposals for ways of writing universal packages or having a manager understands them all or having an api for converting one to the other ... but in the end Unix is best when used according to its philosophy ... each tool does one thing and does it well.

Any time you have a tool that tries to do more than one thing, it ends up being not as good at one of them. For example, poldek sucks at handling deb package dependencies.

share|improve this answer
1  
Pretty much what I was going to say. And frankly, as long as stuff interoperates decently under the hood (say, by adhering to the LSB standards) then I don't really see the problem. –  Shadur Oct 31 '11 at 14:18
8  
++ for "UNIX is best when ... each tool does one thing and does it well". Sometimes I think too many tools are way off that path... –  ktf Oct 31 '11 at 14:23
add comment

In short: because each distribution uses different approach to package management. They are simply not compatible. Management strategy that works best for Ubuntu will have little sense on Arch etc. A "universal" (distribution-independent) package manager would be just an additional layer of user interface, that would never work as good as each distribution's specific manager.

So, using your own words, it is hard to do and therefore not practical - also because hardly anyone would benefit from it.

share|improve this answer
    
Package management solution's are portable to other systems. ive seen portage on debian. However the name of the game is to find something that works for the user, eg. it does not make much sense to make portage the default on ubuntu. We appear to be doing pretty well so far anyway. –  Silverfire Oct 31 '11 at 21:54
add comment

Historical reasons, mainly. Several package management systems got established around the same time - particularly .rpm and .deb. Each has its adherents and each is good enough that no single package manager has a compelling advantage. The distributors certainly won't see the point in a ground-up rebuild of their system to implement a different package manager.

This also would require each package within the system (10,000's in the case of debian) to be rebuilt. It would also require a smooth migration system to be implemented so that users of the system could go from the old to the new package manager. The effort to migrate would be infeasibly large, and exponentially larger to test the migration, so you would almost certainly get many breakages. This would generate many irate punters.

Each distro maintains its own set of dependencies based on what was built for that release. A universal package repository will be too hard to coordinate amongst the distributions as dependency conflicts are almost certain to arise. Therefore the actual benefit of a unified package management system (universal packages) will be impossible to realise in practice anyway.

Finally, who gets to choose the universal standard package manager? The XKCD comic referenced in the comments on the OP summarises the usual failure mode in this type of exercise. Standardising this sort of thing would be very political and likely to result in something that is not usable, or so deeply flawed that it spawnes yet another round of handwringing about standards - if the parties can come to an agreement at all.

So, basically it comes down to: too political, too hard, too risky and no benefit to be realised by doing it.

share|improve this answer
add comment

What you described,

that acts as an interface between the end-user and the underlying low-lever package manager

sounds a little like PackageKit to me, that is,

PackageKit is a system designed to make installing and updating software on your computer easier. The primary design goal is to unify all the software graphical tools used in different distributions, and use some of the latest technology like PolicyKit to make the process suck less.

Edit: See here for a list of supported backends. Edit2: Removed useless remark.

share|improve this answer
    
PackageKit is the standard when you're running KDE. As you said, it just hooks into distribution's underlying package manager. It's very widely used, though. I'd call it rather sucessful. –  Joe Kington Nov 1 '11 at 3:43
    
You're right, I edited out the remark. –  sr_ Nov 1 '11 at 9:59
add comment

First, understand that "Linux" is not an operating system. It is a kernel. A package manager is an OS-level concept, not a kernel-level one. Therefore asking for a unified package manager for Linux is not really sensical.

However, if you are asking why the various operating systems which use the Linux kernel don't have compatible package managers, well you may as well ask why Windows and Macs don't have compatible package managers. Or any other two operating systems.

Different OSes cater to different users' needs, and the package manager is part of it. Why don't all Linux distros have the same window manager? Or come with all the same pre-installed software?

Answer: Different strokes for different folks.

share|improve this answer
1  
+1 for '"Linux" is not an operating system' –  Silverfire Oct 31 '11 at 21:56
add comment

Because every other Linux different OS. They just maintain binary compatibility.

It's all about money. If they all united most of them will struggle to get financed.

See them easily survive this move: Ubuntu trying hard to be desktop friendly. Fedora/OpenSUSE/(CentOS) versions of Enterprise Linux.

Ones who (should) fail: Debian pretend to be secure. Slackware pretend to be stable which is another form of secure. Mandrake fail already and Mandriva gone "user-friendly" way. Mint user-friendly. Gentoo pretend to be FreeBSD.

It good and bad at same time.

Just imagine MS made Windows open-source. We could immediately see 3rd party Windows with all @#$% ripped off.

share|improve this answer
6  
Its not about the money. I've contributed to the fragmentation not because there was money in it but because I thought I had a better idea. The only financial backing around goes to those who have done something that unifies stone previous mess. This argument doesn't apply to open source, only proprietary systems! –  Caleb Oct 31 '11 at 14:35
3  
This answer isn't even remotely close to anything constructive. It's fallacious at best, and pure flame bait at worst. –  Shadur Oct 31 '11 at 15:22
    
I can agree that behind reason of creation Unix clones unability to implement required feature(s) to any other existing system. Money just allow them continue. –  usermane Oct 31 '11 at 17:12
1  
Still factually incorrect. Several major distributions are entirely volunteer-maintained. –  Shadur Oct 31 '11 at 18:04
    
This does not provide an answer to the question. To critique or request clarification from an author, leave a comment below their post - you can always comment on your own posts, and once you have sufficient reputation you will be able to comment on any post. –  Anthon Dec 27 '13 at 6:08
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.