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

  • justniz - Wednesday, August 26, 2009 - link

    Maybe I'm missung something but this appears to be a new article.
    Why are you reviewing a year-old version of Ubuntu? there's been nearly 3 releases since that (Ubuntu is on 9.04 now with 9.10 coming very soon).
    Its important to review the most recent version as Ubuntu is totally unlike the Microsoft world in tnat new releases are frequent (Every 6 months) and have real practical improvements.
  • ioannis - Wednesday, August 26, 2009 - link

    I couldn't help myself, but...

    RTFA!!

    :-D

    PS: if you read the article, you will also get the joke ;)
  • nafhan - Wednesday, August 26, 2009 - link

    Great article. I look forward to reading the follow up.

    One comment on security that I would like to make. The commercial Linux vendors (IBM, Novell, Redhat, etc.) are all VERY dedicated to ensuring Linux security, as many/all of their server products use Linux, and changes they make will filter back down to the Linux desktop community. This is something that OSX does not have to nearly the same degree.

    My experience with running Linux on the desktop sounds pretty much the same as yours.
    -Games killed it in general. I don't usually have a top of the line system. So, I'm usually pushing my computer its limits to run newer games under Windows. Also, I hate dual booting, and most of the FOSS I use is available as a compiled binary for Windows.
    -Drivers killed it in one specific instance with an older laptop, as I never got NdisWrapper (required for my wifi cards Windows drivers) to run better than intermittently. I spent way to much time messing with it.
  • crimson117 - Wednesday, August 26, 2009 - link

    [quote]and for the price you’re only giving up official support.[/quote]

    Ubuntu doesn't have free official support, but neither does Microsoft. Apple does give 90 days free phone support, to their credit, but after that you have to pay.

    You can always hire an expert (from ms, or apple, or a third party) to help you, but that's also true with ubuntu, though I expect there are fewer such experts to be found.

    MS, Apple, and Ubuntu all offer free web-based help, both community maintained and "officially" maintained.

    So I think it's misleading to imply that going from Windows or Mac to Ubuntu means you're downgrading your support options. People overestimate just how "supported" their operating systems are. Also, Linux / Ubuntu releases fixes and updates much more quickly than Apple or MS, so your chances of hitting a bug is lower in the first place. (MS maintains a huge knowledgebase of bugs they haven't bothered to fix yet and might have a workaround for - but I hardly see that as a positive).
  • crimson117 - Wednesday, August 26, 2009 - link

    I'm probably being too hard on Apple here. The genius bar offers free 15 minute appointments to diagnose problems and offer software tips / advice.

    I'd say apple has the best "official" support, followed by a fuzzy tie between ubuntu and microsoft.
  • gordonsmall - Wednesday, August 26, 2009 - link

    While I have used computers for 20 years or more, I am not a techie. I am much more interested an experience that "just works".

    When Vista came out I decided to explore the Linux desktop world. I have been using it as my primary system (still keep the dual boot option for XP) for just under 2 years.

    I agree that "free" and security are big considerations for moving to a Linux desktop environment. However, there are some other items (and you might class them under security) that I like - because of the file structure, you don't have to periodically defrag your system. Both systems have a lot of updates, but so far I have not gotten the feeling that my Ubuntu system is gradually slowing down and clogging up with a lot of useless files (you don't see a lot of adds for such utilities as Registry Cleaners:). I no longer experience the MS ripple effect - when MS sneezes, other Windows apps may get a cold.

    That is not to say that there cannot be issues. My pet peeve has been that my sound has disappeared on a couple of occassions after downloading updates. Using Google, and the Ubuntu documentation, I have been able to get it back up - but wish that wouldn't happen. But Windows updates can on occassion cause some issues.

    I think you made a very valid point about the issue of tech support. Google has made a big difference in problem solving.

    Enjoyed your review.

    Gordon Small
  • yuchai - Wednesday, August 26, 2009 - link

    I've tried using Linux (usually Ubuntu) as a full replacement desktop on and off for the last few years. I've gone back to Windows every time after a while. Some key points:

    1. For my desktop usage, there honestly isn't anything that Linux does better, in terms of functionality, than Windows
    2. Windows is cheap enough that I do not mind spending the money on it. For the $100 that I spent for Vista 64 Home Premium OEM, it is quite worthwhile even if I only use it for 3 years. Yes, there are more apps out of the box for Linux, but it's usually easy to find freeware for Windows with the same functionality. Even Office is now pretty affordable with the Home & Office version.
    3. Games - Wine just doesn't cut it. When I want to play a new game, I want buy it and play it immediately! I do not want to have to do research to see whether some game would work on Wine even before I buy it. I do not want to spend hours troubleshooting on the internet if something doesn't work right.
    4. There's always something that you want to change in Linux that you can't figure out. Yes, usually the solution is on the internet. And I used to even enjoy spending time and looking for the solution. But, it eventually grew old. Now I just want things to work and keep working.

    Note that I do love Linux and actually have a server that doubles as a mythtv HTPC setup. It's a beautiful thing. I am comfortable with shell commands and frequently use SSH to perform multiple functions remotely. My opinions above is purely based on desktop usage.
  • cciemd - Wednesday, August 26, 2009 - link

    Great article, Ryan! Putting out some well written Linux articles really adds depth to your site. I have been reading this site daily for years and this article is prompting my first post.

    For future articles it would be great to see some Linux benchmarks in most of the hardware reviews. There are some excellent tools out there (check out http://www.phoronix-test-suite.com/)">http://www.phoronix-test-suite.com/). This would also give some closer apples-to-apples comparisons for Mac vs. Linux performance. I for one would LOVE to see SSD articles report some Linux (and Opensolaris/ZFS) benchmarks along with all the Windows tests.

    Users often don't realize how much they benefit daily from open source software. I don't think most Mac users realize all the OSX pieces that are used in the background for which Apple leverages open source code (Samba for SMB access and sharing, Webkit for Safari, etc.). Home NAS and enterprise storage which serve files in Windows environments are often *nix based.

    It is also a myth that open source means that developers aren't paid. Most enterprises recognize that implementing even commercial apps can require considerable internal development manpower. If enterprise developers can utilize open source code internally and contribute back to the code base, the companies save considerable money and benefit from a healthy software development ecosystem. There are thousands if not millions of developers employed to work on open source code.

    Please keep up the good work. I am looking for your next article.
  • Ryan Smith - Wednesday, August 26, 2009 - link

    Unfortunately the Phoronix Test Suite doesn't work under Windows, so it's of limited utility. It's something we may be able to work in to hardware reviews, but it's not really applicable to OS reviews.
  • chrone - Wednesday, August 26, 2009 - link

    what i'd like to see on the next ubuntu version is more softer and smoother graphic and font rendering. i hate the way gnome renders the graphic and font. they look old operating system. using the ms core font some how helps but not much.

    i know there's compiz and friends, but i just wish it comes by default, so no need to hassle with compiz and its setting. i wish it could be rendered softer and smoother such as in windows and mac osx.

    the look and feel should be tweaked more often! :D

Log in

Don't have an account? Sign up now