The Package Manager – A Love/Hate Relationship

Out of every piece of software in Ubuntu, the package manager is the single most monumental and unique piece in the Operating System. I can tell you about Evolution (Ubuntu’s email client), or Totem (Ubuntu’s media player) and even if you’ve never used these programs, it would be easy to relate them to other things you likely have used. However trying to relate a package manager is a bit harder. The use of a package manager, and going further than that by completely relying on one, changes the OS experience entirely. Some of these changes are good and some are bad, driving what has become a love/hate relationship with apt, Ubuntu’s package manager.

Rather than trying to explain what a package manager is, it would be easier to explain what is a package manager. Package mangers are more common than most people would think, as there are several systems that use package managers without it manifesting itself in an obvious way. My iPhone runs a package manager – two in fact – one being the iTunes App Store and the other being apt (the same as Ubuntu) sitting underneath Cydia. Steam is also a package manager, taking care of its own little microcosm of games, mods, and SDKs. Most people have used a package manager without realizing it.

But none of them take it as far as Ubuntu. Steam only uses package management to install games, the iPhone via apt takes it a little bit further to install a wider base of applications and frameworks, but none of them integrate package management in to the OS like Ubuntu does. Everything in Ubuntu is a package, starting with the kernel and moving to drivers and applications. And the ramifications of this are huge.

When you go to install an Ubuntu application, there is no need to track down an installer for an application, make sure it’s the latest version, make sure it’s not really a Trojan or virus-infected, etc. All of the applications bundled with an Ubuntu release sit on Ubuntu’s servers as a package. Finding software to install (if it didn’t already come on the CD) is as easy as firing up the Add/Remove Applications application, and looking for the application you’d like to install. And if you don’t know what you want to install? Ubuntu will tell you all about whatever application you’re looking at.

Once an application is installed, the package manager will keep track of that application. It can uninstall the application if you need to remove it, or make sure it’s up to date if at some point a newer version (such as a bug fix) is published. The package manager brings everything together.

From an application perspective it’s little different than the iTunes App Store, but compared to what other OSs do it’s a big deal. How many different applications install their own updater service? Even though Microsoft and Apple consolidate updating their software in to their own software update systems, they can’t do that for everyone else’s applications. Chrome, Flash, Java, etc all have updaters running in the background just to keep their respective applications up to date. And while these updater applications are small compared to what they’re tasked to monitor, it’s none the less a waste of resources. Why do you need many applications to do the same job? On Ubuntu, you don’t.

On Ubuntu, the package manager is also in charge of keeping the OS itself updated, which is where we see it significant diverge from our earlier example of the iTunes App Store. Mixed in with application updates are updates to various system components, each one dutifully made in to their own package. This makes it very easy for Ubuntu to distribute component updates as needed (rather than bundling them together as larger updates) but it’s also a bit daunting – there are a lot of updates even when starting from Ubuntu 8.04.3. Nevertheless, for the curious types, this allows you to see exactly what’s being updated, and usually there’s a note attached with a meaningful explanation as to why.

Ubuntu’s package manager is the most foolproof way to install and maintain software I’ve ever used, on a computer. And that’s why I love it.

The package manager is also the outlet of my frustrations with Ubuntu, for many of the same reasons. Everything in Ubuntu is a package. There are no drag-and-drop installs like in Mac OS X, and there are no MSI/NSIS/InstallShield installs like Windows, there is only the package. The problem is that the package manager is an extremely self-limiting device when combined with Ubuntu’s software distribution philosophy as we mentioned earlier. Ubuntu isn’t just distributing an OS on which you run programs, but they’re distributing the programs themselves, and it’s all one stable platform.

You’ll first discover how frustrating this can be when you decide that you would like a newer version of some piece of software than what Ubuntu offers. We’ll take Wine for example, which develops at a rapid pace. If you want to be able to install the latest version of Wine, rather than version 1.0.1 that comes with Ubuntu, you’ll need to follow these instructions, which are composed of adding new repository entries to apt, followed by downloading and importing an authentication key in to apt so that it will trust the packages. Only then can you go back in to the package manager and tell it to install the latest version of Wine.

The Ubuntu project does offer a slightly simpler alternative through the Personal Package Archives, which are packages uploaded by users and hosted by the project. PPA repositories are a bit easier to install than the standard DEB repository, but the primary focus on PPAs is that there’s additional software available as a package for easier upgrading and maintenance. However since PPAs are maintained entirely by users, they’re unreliable as a source of updates, and not everything is made available for Hardy.

As a result of all of this, the package manager has just made software installation on Ubuntu a good deal harder than it is on Mac OS X or Windows if we wanted to do the same thing. And if you want a piece of software that’s not either the default Ubuntu version or the latest version from another repository, good luck, the package manager is designed to make upgrading easy, not necessarily downgrading.

The package manager exists to the detriment of any other way to install software. Technically software packages can be distributed outside of a repository, but in my own experience that seems very uncommon. Followed by that you have the shell script containing a binary blob (which may or may not be recognized and open correctly) and the more bearable-but-rare compressed folder. You are, for better or worse, stuck with the package manager in most cases.

This is why I hate the package manager. To the credit of the developers of it, it’s more of a flaw in the philosophy of Ubuntu than the technology, but the package manager in the minion enforcing the harsh realities of that philosophy. It’s here where the wheels start falling off of Ubuntu. It works well when you want to run software that Ubuntu provides in its main repositories, but only when you want to run software that they provide. Installing any other software is at times a nightmare.

I’ll close out this section reflecting on the iTunes App Store one more time. In spite of being a package manager, I have no qualms with it. Apple doesn’t tie app versions with OS versions, so I can always grab the latest version. Meanwhile if I need an older version it’s not easy, but double-clicking on archived IPA files is still less troubling than trying to pull off something similar with Ubuntu.

True nirvana for software installation and updating lies between Ubuntu’s strict package manager, and Windows’ loose environment of installers. Apple found one solution, though certainly not the only one. Ubuntu would do well to find a similar way to meet in the middle. As much as I love a unified installer and updater, as done by Ubuntu it causes me more frustration than enjoyment. I consider the package manager to be the worst regular experience of Ubuntu.

A Word on Drivers and Compatibility UI & Usability
Comments Locked

195 Comments

View All Comments

  • Guspaz - Wednesday, August 26, 2009 - link

    "Not that it would necessarily be of much use, the last time I saw any statistics for instant messaging network usage, the vast majority of North American users were on AOL’s AIM network."

    IM use is highly regionalized. As such, AIM is clearly the dominant IM in the USA. However, Canada is dominated by MSN Messenger, and has been for many years (most of us migrated from ICQ to MSN around the release of Windows XP, I believe, due to the bundling of then Windows Messenger).

    So, if Canada is dominated by MSN, while I can't speak for Mexico, it's misleading to claim that "the vast majority of North American users". As a Canadian, I can't think of anybody I know in person that uses AIM. They all use MSN or Google Talk without exception.
  • Aclough - Wednesday, August 26, 2009 - link

    For myself, the thing that most bugs me when I have to go back to Windows is all the missing features from the window manager. I've come to rely on having multiple workspaces on my desktop, but I can adjust to having just one fairly easily when I'm not working on a lot of different stuff at once. What really bugs me, though, is how much more effort it takes to move or resize windows in Windows. On Linux I can press ALT and then click anywhere on the window, but with Windows I have to carefully click the title bar or the very edge of the window and that takes a noticeably longer time once you're used to doing things differently.

    Oh, and I find that the Linux scheduler seems to be noticeably better than the Windows one in preserving responsiveness when the system is under load.
  • fumacapena - Wednesday, August 26, 2009 - link

    Great article!

    How about some benchmarks of "minimal" distros (like Puppy, Tine Core, ...)??
    I like the idea of "ressurect" an old PC, but I would like to see benchmarks in Quad Cores, i7 too!

    Anandtech is great, Bench(beta) is awesome!!
    (sorry by bad english)

    Thanks
  • InGraphite - Wednesday, August 26, 2009 - link

    A few months ago most major trackers unbanned Transmission, but it still doesn't seem to be universally accepted on private trackers.

    I remember offhand (I could be wrong) that the main gripe was due to the fact it made excessive queries and thus flooded trackers with requests, or had the ability to.
  • chomlee - Wednesday, August 26, 2009 - link

    I think you really need to mention the big picture here.

    I myself just tried Ubuntu for the first time 2 months ago and although I will admit that I have spent up to 8 hours trying to figure out how to install a specific program (before I found out there was a way to get the package manager to find the install), and I wanted to smash my computer at times. Now that I have learned quite a bit more, I realized that the few things I have installed worked great and flawlessly.

    Anyhow back to the big picture. I can understand some of your concerns with how the OS will work with specific programs but what I have found is that most people I know use their computers for 2 things email and web browsing. Most of these people are constantly having problems with the system running too slow and cant seem to get rid of hidden viruses/malware. So I think that those people could easily be much happier with a simple OS like Ubuntu just for email and web browsing (And I would get a heck of alot of less calls from my dad asking my why his computer is running too slow). Lets also not forget that everything is moving to be browser compatible (like you mentioned).

    Also, for people like myself, I use my Ubuntu system for a file server as well as a media center (XBMC is Awesome).

    So, yes, for burning DVDs/CDs/Playing Games/Microsoft Office, I see no reason why you wouldn't use windows, but I think 95% of the users would be perfectly fine with ubuntu which is something that Mr Bill would not be very happy about when the public realizes this.
  • Keno - Thursday, August 27, 2009 - link

    I think you have missed one small but important part.
    I am Ubuntu user since 8.04. I came to Linux because of the constant treat of viruses.
    Last month I have installed 7 and it is very user friendly and I think it is very user frinedly but after Avira Antivir got crashed by virus I installed Kaspersky INternet security 2010. then it took almost twice as long to boot. Then I gladly returned to Ubuntu 9.04. Because MIcrosoft can not exist without Antivirus I think you should do some real benchmarking and test windows WITH Antivirus.
    On Ubuntu I have ClamWin just in case i get some files from Windows users:)
    Thanks
  • ioannis - Wednesday, August 26, 2009 - link

    just wanted to point out that you can install software under the LiveCD. Of course it does not install on the hard drive. It remains on a ram-drive, so when you reboot, it's gone. It's still useful, if you wish to test out some package or perform some task with a tool not installed by default on the LiveCD
  • strikeback03 - Wednesday, August 26, 2009 - link

    Even more useful (and not mentioned) is that Ubuntu can easily run off a flash drive, and more recent versions even include a GUI tool for installing it to one. Then all installs and other changes are saved from session to session, and everything runs much more quickly than the LiveCD.
  • Mr Pearce - Wednesday, August 26, 2009 - link

    It would be great if you could do more articles on compiler and especially driver performance differences. That was the most interesting part of this article.
  • Ryan Smith - Wednesday, August 26, 2009 - link

    This is what Part 2 will look at. I can compile some stuff by hand to see if it closes the Windows/Ubuntu gap, and I have plenty of video cards on hand to test what I can when it comes to graphics.

Log in

Don't have an account? Sign up now