“PackageKit aims to take the pain out of the package management on GNU/Linux systems and create a system that can compete with Windows and Mac. Development is proceeding at a rapid pace and it is set to be available in Fedora 9.” – Interview with Richard Hughes (of Gnome Power Manager fame), and Robin Norwood.
PackageKit’s implementation will be an abstraction of the diverse culture of package management interfaces that seem to all suck. Have you ever shown someone new to Linux the program Synaptic? Or worse, KDE’s Adept installer? Lets hope not. Progress is being made in Ubuntu in the “gnome-app-install” (aka Add/Remove) program to clean up the crud. It has made several important decisions eliminating some verbosity to make it easier to use. Even if this becomes the perfect interface, it is arbitrary to Ubuntu’s distribution. What about OpenSuSE users, Gentoo, or Fedora? Double the problem by looking at different desktop environments on the same distributions. Its quite a mess.
PackageKit proposes to unify the GUI by offering a distribution, and DE agnostic interface to the underlying packaging systems. Simply put, you would install software in Fedora 9 exactly the same way you would install software in OpenSolaris, Kubuntu, or Gentoo. Cool concept, but is the differing software management interfaces really the problem? I think not. While a standardized interface would certainly help the Linux culture move into mainstream, its issues lie outside of where to point and what to click.
Ian Murdock argues that the diversity of the different package formats is the real problem and I agree. As an entity that develops software (an individual, a corporation, etc), the fewer specific things you have to support the better. The reason is that writing/maintaining code is expensive. The bigger the audience you can support without making changes to code – the better. As it stands, Windows has the ubiquitous “.exe” package format. Apple has its “.dmg” format, and Linux has “.rpm, .deb, .ebuild, .tgz, .pkg”. An ISV’s solution to the mess on Linux so far has been avoidance.
I think another issue with Linux package management is the perceived difficulty in generating these distribution specific formats. I have actually packaged software into a .deb and I have to admit it took more time that it was probably worth. How about some tools to auto generate source packages into some universal format? Even outside of distributions and into cross operating system. Its a lofty goal to say the least, and this is one step in a right direction. However, I feel the scope will have to widen to bring real change.
Neither Windows nor OS X have a single “package” format. Windows has at least the following: WiX (.msi), InstallShield, Nullsoft Scriptable Install System, and Wise (there are more). Each one has it’s own methods, features, shortcomings, and price. Yes, they all end up being some sort of executable, but to the programmer and business, whom you are arguing for, it is no less a pain in the ass than the various Linux package formats. In fact, in my opinion, it is easier on Linux. Have you ever tried to use InstallShield? That’s a bunch of bullshit; especially compared to how simple it is to create most Linux packages.
OS X has plenty of package distribution methods as well. You have the disk image you mentioned; the OS X installer [http://en.wikipedia.org/wiki/Installer_(Mac_OS_X)], my most hated one; zip files; tar files; Fink; Macports; i-Installer (http://www.rna.nl/ii.html); and probably more.