Package management software has had an impressive number of attempts to build a better mousetrap. I may disagree that the absence of an easier, intuitive package manager is a major reason preventing wider adoption of Linux desktop; but, with the release of the new version of “Ubuntu Software Center” on Ubuntu 10.04, an interesting question to pursue is that is it doing the right thing?
I have very fond recollections of the philosophy courses I studied – they taught me that the answer to the above question is not as easy as it may seem. (As an aside, to know whether you know the right thing to do, you may wish to see the first lecture at http://www.justiceharvard.org/)
When we open Ubuntu Software Center, it shows a reasonable grouping of applications. We will explore the multimedia options. In fact, we will confine ourselves to the video players only. We will pretend to be a new user who has no idea about the video players and is determined to find the one he likes best. We will then use tools like dpkg-query and Synaptic to understand what is happening behind the scenes.
Gnome-mplayer seems nice. We install it. As expected, the package manager does its work and does not display any more messages or inform us of the various dependencies which will be installed. Using dpkg-query, we confirm that it has indeed installed over 20 packages. We now remove this package before trying another. Typically, an excellent package like Synaptic will fail us. It will uninstall gnome-mplayer but not the other 20 odd packages which were installed to satisfy the dependency needs. Ubuntu Software Center quietly removes them all.
We try smplayer. Installation and removal work equally nicely and quietly. So, let us try a little more complex interaction. We install gnome-mplayer and then install smplayer. Now, we uninstall gnome-mplayer. The behaviour is reasonable. The common dependencies are not removed. Smplayer continues to be functional.
We now remove smplayer and it does not do the right thing. The common dependencies remain. Reinstalling gnome-mplayer and removing it cleaned up the packages which had been left behind.
Our next stop is a player I had not tried before – kmplayer. As expected, it needed a lot of extra packages because of the kde dependencies. Surprisingly, the one package not included as a dependency was mplayer! So, kmplayer could not play any file. Worse – it did nothing very quietly, ignoring all our attempts to show some video. However, since we are not discussing kmplayer and Kubuntu is the right distribution for KDE applications, we will ignore this anomaly. Incidentally, smplayer uses the QT libraries but not the KDE libraries.
We go ahead and uninstall kmplayer. Only one package is removed.
All the kde packages remain!
We, instead, use “apt-get autoremove -f” to clean up the broken packages.
By now it must be clear that my pain point with package management has been the clutter left behind when one is trying different packages. It is not because of disk space constraints. It is because of the wasted time on updates of unneeded packages. I avoid reinstalling an os, so the upgrades and updates cover a number of distribution versions. Over a period of time, some updates fail because of the unneeded packages remaining on the system. Aesthetically, just the idea of needless clutter lying on my system is very unappealing.
As a final test, we will install mplayer using Synaptic. Synaptic shows it in the list of manually installed packages.
We, now, install gnome-mplayer using Ubuntu Software Center. Verify that it is working and uninstall it. Does it do the right thing by leaving mplayer installed. After all, it was already installed prior to the installation of gnome-mplayer? We find that it does do the right thing.
The magic, though imperfect at present, appears to be by using the apt-get's autoremove option. So, overall, the progress in the management of packages is very good. Hopefully, the inconsistencies in autoremove capabilities of apt will be ironed out. These are probably in the packaging configurations.
The display and grouping of applications relies upon the desktop files in /usr/share/app-install. The system group, though, shows all applications in the 'system' category. I would guess that this category includes all the packages which do not have a desktop file associated with them.
No one complains about the hundred thousand applications available for iPhone; hence, the remarkable range of applications available for Linux is a feature, not a liability. We just need a nice short description of each package with a nice keyword search.
Ubuntu Software Center is definitely headed in the right direction.
Exploring Software >