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

  • brennans - Sunday, August 30, 2009 - link

    I use both XP64 and Hardy (Ubuntu 8.04).
    I am also a power user.

    Both these operating systems have pros and cons.

    Cons for XP64:
    1. It does not recognize my hardware properly.
    2. Finding 64 bit drivers was/is a mission.

    Cons for Hardy:
    1. It does not plug and play with my hardware (i have to compile the drivers).
    2. Not as user friendly as windows.

    Pros for XP64:
    1. Windowing system is super fast.
    2. User friendly.

    Pros for Hardy:
    1. Recognizes my hardware.
    2. Command line tools are awesome.

    Conclusion:
    I think that the article was good.

    I am one of those people who has always had problems installing windows straight out of the box and thus find that paying a large amount of money for their buggy OS is unacceptable.

    I can get a lot of stuff done with Hardy and it is free and if I find a problem with it I can potentially fix that problem.

    I also find it unacceptable that manufacturers do not write software (drivers or application software for their devices) for Linux.

    For me, it is difficult to live without both XP64 and Hardy.



  • ciukacz - Sunday, August 30, 2009 - link

    http://www.iozone.org/">http://www.iozone.org/
  • JJWV - Sunday, August 30, 2009 - link

    How can people use something like Aero and its Linux or OSX equivalents (that pre-dates it if I am not mistaken) ? The noise is just hiding the information. Transparency is one issue, another are those icons that are more like pictures : one looses the instant recognition. With Aero knowing which is the active window is not something obvious, you have to look at small details. The title of the window is surrounded by mist making it more difficult to read. Even with XP the colour gradient in a title bar is just noise : there is no information conveyed by it.

    The OS GUIs are more and more looking like those weird media players, with an image of rotary button that is to be manipulated like a slide button.

    The evolution of all applications to a web interface reminds me of the prehistory of personal computers : each program has its own interface.

    The MS Office Ribbon UI is just in the same vein: more than 20 icons on each tab. The icon interface is based on instant recognition and comprehension, when you have so many it turns into a mnemonics exercise. And of course with MS one does not have a choice : you just have to adapt to the program. An end user is only there to be of service to the programs ;-)

    If i want to look at a beautiful image I will do it, but the when I want to write an letter or update a database all those ultra kitsch visual effects are just annoying.

    As a summary the noise is killing the information and thus the usability.
  • Ronald Pottol - Saturday, August 29, 2009 - link

    The thing with windows has been seen before, back in the win 3.1-OS/2 days it was found that while one instance of excel didn't run any faster under OS/2, two in separate VMs (ok, not technically the same thing) ran in about the same time as one on windows.

    I like the package management, and hate when I have to install something that doesn't support it, it means I have to worry about updates all my self. If they have one, they I get updates every time I check for Ubuntu updates, very handy. Nice to get the nightly Google Chrome builds, for instance (still alpha/very beta).

    Frankly, supporting binary kernel drivers would be insane. Now they are stuck supporting code they cannot look at and cannot fix, they cannot fix their mistakes (or are stuck emulating them forever). If they supported them, there would be even more of them, and when they wanted to fix something broken or that was a bad idea, they would have to wait a reasonable amount of time before doing it, so it would be supported. Frankly, I don't see why people don't have automated frameworks for doing this and automated deb/rpm repository generation. I add their repository, when I get a kernel update, perhaps it is held up a day for their system to automatically build a new version, but then it all installs, instead, I am stuck with having to run a very old kernel, or not having 3D on my laptop, for instance.
  • cesarc - Sunday, August 30, 2009 - link

    I found this article very interesting, because is oriented to windows user and is helpful to them because you just didn't die trying it.
    But you can't blame ubuntu (or any distro), about the pain in the ass a video card's drive could be to install, blame ati and nvidia for been lazy, and if using wine for playing games is not as good as playing in windows blame games company for don't release a GNU/linux version.
    Also, the thing about why GNU/linux overpass windows in file management is because ntfs is a BAD file system, maybe if windows somehow could run under ext3 would be even better than it is.
    And why your negligence to use a console (stop saying cli please), you are not opening your mind trying to use GNU/linux as a windows just because it is not windows is a completely different os. Look from this point of view... something that you can do in windows with 5 clicks maybe you can do it in GNU/linux in just one line of bash code. So, sometimes you will use GUI and others you will use console and you will find that having this options is very comfortable. So start using the console and do the same article a year later.
    I hope some day have a paid version of GNU/linux (still open source), that could pay salaries to programers to fix specific issues in the OS.
    In the other hand, when you do the IT benchmark is very disappointing that you don't use linux with those beautiful Xeons. Servers environment is were GNU/linux get stronger. And Xeons with windows are just toys compared with unix on sparcs or power architectures.

    PS: try to get 450 days of uptime in a windows 2003.
  • rkerns - Saturday, August 29, 2009 - link

    Ryan,

    Thanks for your good work.

    Many people considering linux are still on dial-up. These are often folks with lesser expertise who just want to get connected and use their computer in basic ways. But getting connected with dial-up is something of an adventure with many distros and/or versions. Ubuntu 9.04 has moved away from easy dial-up, but Mint7KDE includes KPPP for simple dial-up connection. Mint7KDE has other nice features as well.

    I am asking you to expand your current picture of the landscape to include people who want to use linux with a dial-up connection. This of course would have to include a brief discussion of 1) appropriate modems and 2) distro differences. Thanks,
    r kerns
  • William Gaatjes - Saturday, August 29, 2009 - link

    GRATIS

    hijg hijg hijg hijg

    hijg hijg hijg hijg
  • lgude - Saturday, August 29, 2009 - link

    Really glad to find this in depth article after all this time. Thank you Ryan. I too have run Ubuntu as my main OS even though most of my experience is in Windows and have had similar experiences. Because this was a very long article it got into detail about things like the Package Manager or the multiple desktops that I have not seen discussed elsewhere from a user perspective. As someone else pointed out it is moot what people would like or complain about if they were moving from Linux to Windows or OSX, but imagine for a moment if they were used to getting the OS and all their apps updated in one hit and were asked to do it one app at a time and expected to pay for the privilege!

    If you go on with the Linux series I'd like to see discussion of the upcoming Ubuntu and other distros - I've been impressed with SUSE. I'd also like to see projects on how to build a Linux server and HTPC - including choice of distro and the kind of hardware needed. I'm less sure of where benchmarking is really useful - the tradition of detailed benchmarking at AT arose from the interest in overclocking and gaming which I think is a much lesser consideration in Linux. More relevant might be comparisons of netbook specific distros or how to work out if that old P4 will do as a home server. There is a lot of buzz in the tech world about things like Symbion, Chrome OS, Moblin, Maemo on portable devices that could possibly draw new readers to the Linux tab at AT. A great start in any case.
  • jmvaughn - Saturday, August 29, 2009 - link

    I just wanted to say thank you to the author for a very thorough article. After reading it, I decided to use Ubuntu for a PC I'm building out of spare parts for a retired friend who's on fixed income. My friend just uses web, e-mail, and some word processing, so this will be perfect.

    The article gave me a good idea of what to expect -- a good honest appraisal with all the good and bad. After installing Ubuntu 9.0.4, I am very impressed. The install was very quick, and easier than XP. Everything is quite snappy, even though it's running on a AMD 3800+ single core processor and an old hard drive.

  • xchrissypoox - Saturday, August 29, 2009 - link

    I only skimmed the article (I saw the part on gaming being poor), I'd like to see a comparison of several games using the same hardware on windows and linux (results given in fps). If this has been mentioned sorry and good day.

Log in

Don't have an account? Sign up now