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
. It's 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 that 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.