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

  • amrs - Saturday, September 26, 2009 - link

    Your ignorance and stupidity is showing here. No engineering software for Linux? Hello? Matlab is available, Simulink is available, Labview the same. Xilinx and Altera have supported Linux for a long time and so do the smaller FPGA houses like Lattice and Actel. Mentor Graphics too. Orcad is the only one you mentioned that isn't available on Linux, but Cadence does support Linux with their Allegro product and so does Mentor Graphics with PADS and Board Station and Expedition.

  • MadIgor - Thursday, September 24, 2009 - link

    I have to disagree. You are NOT talking abut average Joe/Jane. I think that even the article author is kind of biased towards enthusiast user. Ubuntu actualy completes all needs of average Joe/Jane user, you can browse www, you can do email/scheduling, you can play games (easy non enthusiast games), you can DL pictures from your camera and edit them, you can even playback mp3/CD and video, do basic office work, all out of the box. The gnom learning curve for PC beginners is much shorter then with windows. Most of the average Joes/Janes dont install aps or peripherals by themselfs, belive me I had to install it for them many many times on Win systems (the best is "installing" digital camera: plug one wire end in camera, other in PC). Yes I agree that installing Ubuntu so that ALL is runing right may be pain in the ass, but average Joe/Jane naever install their system (not Win, nor MacOS), but when they get the PC with preinstalled Ubuntu you are done. With windows you have to worry that they will "bother" you every few months with non working system. Yes it might be nice source of income for PC technician, but not always welcome as reliability advertising (for customer to come).
    I did some instalation of Ubuntu to my customers mostly as a "safe" web/mail PC, they all where used to windows platform already, after one week of using Ubuntu even the hardest critisizer where comfy to use Ubuntu (some even asked me to install it on their home PCs), The most "problem" was: that no one can read our "excel" files. So I showed them that it has to be saved with .xls extension and voila, no more problems. I was NEVER asked for any CAD system, nor MATHLAB, not even Graphics apps, all what they used in offie was already there! Then there are home users, only complaint was that thay had windows at work, but after few houres all was fine, only kids had problems that they cannot play enthusiast games on it. My wife is running Ubuntu for three years now, with no problem. When my 62 year old mother asked me for a computer I brought her a notebook with Ubuntu, had no time to explain it comming next mornig. My mom never used a computer before (ok shooting ships on my ATARI doesnt count), next mornig I came there, she was already browsing. I asked her how did she do that and she said its easy, tap the aplications then internet and one of the apps was "internet". She even installed the snake game, Isaid how did you do that, she said in aplications section is install new aplication, then she clicked on games and then she piscked what she tought would be the game for her and then install, whas that wrong? she asked, I said NO, its right.
    BTW no one knows that they can use CLI or that there is some terminal window in Ubuntu. They are average Joes/Janes.
    Not everyone is an enthusisat with PC full of stuff that, and be honest, you dont use on dayli base.
    The truth is that Ubuntu will not be a succesfull system for enthusiast or high level profesionals until big software houses (Adobe, hallo!) and game producers will not start to port software for Linux. But that is not fault of Ubuntu or linux and again we are not talking here about majority of users (I mean Joes/Janes).
  • fazer150 - Friday, September 4, 2009 - link

    All folks who think Linux is hard. Have you tried PCLinuxOS? this is easier to install, use than Windows XP, 2003 and Vista period.
    there is no Windows hatred here, but you have to try that before you complain.
    I have access to all Windows OS at work including the latest Win 7 RC but i find PCLinuxOS easy to setup and use. Needs no special admin skills every config is GUI driven.
    Linux has come a long way from where it was 5 years ago!
  • Cynicist - Sunday, September 6, 2009 - link

    There are two things I'd like to comment on that bothered me about this article. Firstly, most regular users do not use LTS, the software is just too old and the latest releases of Ubuntu are quite stable. LTS is mostly guaranteed stability for corporate environments.

    Second, this package manager hatred is based on this flawed idea that no packages exist outside of the official repositories. A simple google search for deb packages leads to GetDeb.net, a website dedicated to providing up to date packages of all kinds of software specifically for Ubuntu. Google search too hard you say? But its even less difficult to find packages because many project sites (such as wine, featured in this article) include multiple packages for various distributions and even PACKAGE TYPES.

    Overall not a bad article. The author definitely knows technology and I'm grateful for that, but he did not seem to do much research on the actual community itself or the Linux Way of doing things. These are minor issues which will resolve themselves with time and I'm looking forward to seeing more linux articles on this site in the future.
  • cliffa3 - Thursday, September 3, 2009 - link

    I was concerned as well with the constant releases...until I upgraded the first time. I had set aside the better part of an evening because I was *sure* there were going to be plenty of headaches. I've done three such version upgrades now and am happy (not to mention shocked) to report that it's literally a one click upgrade. Simply amazing. I'm sure something will get mucked up in the future with one of the version upgrades for me...but for now all has gone amazingly smooth.

    That being the case, I have to disagree with you on the "they release too often" point. I understand it's a pain to sift through all the search results on the forums, but I also have found some older threads (sometime 3 versions back) that the same fixes work for my issue. I agree they need to tag posts with version info...that would make it far easier. Also, there's far more useful information in the (versionally-diluted) forums than I've found for any other piece of software or OS I've used. I almost don't cringe when I have a problem or issue now because I'm quite confident I can find the information without too much digging.

    I'd encourage you to upgrade versions from your current install (don't wipe) and comment on how the process goes. Maybe I've just had an extremely easy (and lucky) go of things with no problems...it'll be interesting to read your experiences. Honestly with how easy my upgrades have been, I look forward to new releases (but still give them a few weeks before upgrading...just to see the comments from other users).
  • Mem - Wednesday, September 2, 2009 - link

    Very good read as usual,personally I like to see Kubuntu reviewed at some point(I hear Kubuntu 9.10 is due in Oct) ,as you know its the KDE version,also Gnome and KDE compared would be interesting.

    I think the main problem for new Linux users is which one to go with,sure they are all free but it can be confusing and time consuming to try them all,some are more noob friendly then others like Ubuntu/Mint.
  • lishi - Wednesday, September 2, 2009 - link

    Since you spend so many time dealing with the windows its worth pointing that compiz is actually much more powerful then what you wrote.

    Install the package ccsm-simple for more option.(like different application selector, different windows animations etc).

    Or install ccsm for the complete configuration tools. Given most of them are eye-candy there some who can improve the desktop experience.
  • sethk - Tuesday, September 1, 2009 - link

    In this sentence:
    "It’s undoubtedly a smart choice, because if Ubuntu wiped out Windows like Windows does Ubuntu, it would be neigh impossible to get anyone to try it out since “try out” and “make it so you can’t boot Windows” are mutually incompatible"

    The more common phrase is 'nigh on impossible' (as in close to impossible) or you could say it's nigh-impossible. Definitely not neigh. Sorry to point out grammar issues, but this is a pet peeve, right along with pique being spelt peak or peek (as in pique my interest).
  • v8envy - Tuesday, September 1, 2009 - link

    I've been a 100% Linux desktop (Ubuntu 9.04) user at home ever since I bought my last i7 920. Gaming, multimedia, web -- everything a typical desktop user does under Windows. The inconvenience of migrating an existing Windows install & re-activation outweighed the convenience using Linux which simply booted and worked on the new hardware.

    Yes, there are times where you must fire up Google and search for solutions, some of which are commands to be pasted into a terminal window. Yes, sometimes you need to upgrade software packages (Wine is horribly out of date for instance).

    On the other hand, with Windows you get apprximately 1,337 updaters which run on startup, virus checkers, malware checkers, browser parasite checkers, firewalls, DRM and misc layers of barnacles which accumulate the longer you use the system. Thankfully the gathering of cruft is not a bane on the typical Linux system yet.

    Try 9.04 and see if it is more to your liking. LTS means nothing when most open source problems are "supported" by simply upgrading to the latest software.
  • trexpesto - Monday, August 31, 2009 - link

    "linux" is "niche" spelled inside out and backwards


    ..in rot13.

Log in

Don't have an account? Sign up now