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

  • sadf23ssaaa - Monday, March 22, 2010 - link

    Welcome to our website:

    jordan air max oakland raiders $34--39;
    Ed Hardy AF JUICY POLO Bikini $25;
    Christan Audigier BIKINI JACKET $25;
    gstar coogi evisu true jeans $35;
    coach chanel gucci LV handbags $36;
    coogi DG edhardy gucci t-shirts $18;
    CA edhardy vests.paul smith shoes $32;
    jordan dunk af1 max gucci shoes $37;
    EDhardy gucci ny New Era cap $16;
    coach okely Adidas CHANEL DG Sunglass $18;
  • zerobug - Monday, February 1, 2010 - link

    Regarding benchmarks and Linux-focused hardware roundups, one thing worth of consideration is that while Microsoft places strong resources on O/S development to create features that will require the end users the need to get the latest and greatest powerful hardware, Linux places their efforts in order that the end user will still be able to use their old hardware and get the best user experience while running the latest and greatest software.
    So,the benchmarks could compare the user experience when running popular software on Microsoft and Linux O/S's, with different powerful machines.
    For this, you could pick up some popular open source and proprietary (or their free equivalents) application that can run both Linux and W7. and compare the price, time and power consumption for retrieving, saving, processing, compiling, encrypting,decrypting compacting, extracting, encoding, decoding, backup, restore, nº of frames,etc, with machines in a range of different CPU and memory capacities.
  • abnderby - Thursday, September 3, 2009 - link

    Let me say this, I am a Senior Software QA Engineer, I have been testing windows, windows apps, DB's and web sites for over 10 year now. I am what you could consider an windows guru of sorts.

    I have off an on always gone and tried linux from red hat 5, 6, ubuntu, suse, fedora etc... Linux is not and has not been ready for mainstream users. Sure simple email, word docs web browsing it is ok.

    But in order to do many things I want to do and many advanced windows users the author and many commentors are right. Linux people need to get out of their little shell and wake up.

    Linux has such great potential to be a true contenderto windows and OSX. But it lacks simple usability. Out of the box it can come nowhere close to MS or Apple offerings. The out of the box experience is truly horrible.

    Hardware drivers? good luck I run RAID cards that have no support. Forget the newest graphics and sound cards. Connecting to shares just as the author mentioned a hassle of a work around.

    Again as stated elsewhere Linux needs someone who programs and or scripts to get things done right. I have neitherthe time or patience for such. I use command line when needed. I would rather have 2 or 3 clicks and I am done then have to remember every CLI for every thing I need to do.

    Time is money, time is not a commodity. Linus wastes too much time.

    It is geting better with each distro true. But It has been 11 years from red hat 5?? and Linux is not a whole lot better than it was then.

    What is needed if Linux really wants to make a stand in the desktop space, is a unified pull togeher ofall distro's. Sit down and truly plan out the desktop. Put together a solid platform that out of the box can really put the hurt on MS or Apple.

    Look what Apple did with OSX! And how many developers are wrking on it? How many developers are working on Linux all distro's? OSX is a jewel in 7 years it has matured much farther than any *nix distro. And has a following that cannot yet be challenged by any distro available.

    Why is it that when win2k came out Linux was claiming to be superior, and yet after 10 years of development it is hardly comparable to XP let alonevista/win 7 or OSX?

    You guys really need to wake up and smell the coffee!

  • Penti - Monday, September 7, 2009 - link

    Of course it's not ready for consumer desktops, there are no serious distributions for that.

    It means no DVD player OOB, no proprietary codecs, no video editing software, no proprietary drivers which works magically. Of course not is SLED and RHEL Desktop ready for normal users it's targeted for Linux admins to set up the environment. Community distributions won't have as easy time to be set up by those. Community distros will also always lack the above mentioned stuff. It's simply not legal for them to offer it OOB. OS X is actually older then Linux and ran on x86 before Apple bought Jobs NeXT company. It's also supported by an OEM. (OEM = Themselves). Which no Linux dist is. It also uses many GNU technologies like GCC, X11 (optional but included on disc), bash shell and so on, and of course SAMBA for SMB/CIFS, on the server edition they use a modified openldap server, dovecot and postfix for mail, Apache, PHP, Perl, MySQL etc. Stuff thats developed on Linux and has matured thanks to it.

    There's a lot of problems with having just community supported stuff, but that doesn't mean it's useless or sucks. Sure the kernel aren't really helping getting drivers in there, by locking out closed source stuff but they end up useless if they are proprietary and not updated any way. For the servers just buy RHEL or SLES certified stuff and you get all the hardware support-needed. But on the other hand you wouldn't be much successful in running 7 year old video drivers in Windows either. Community distros definitively don't need to cease existing for the creation of a commercial one. But there will never be one linux and that's really the beauty of it not the course. It wasn't meant to be something rivaling windows and the kernel developers has no desire to create a distro. That's why we can see Linux in stuff like Android and Maemo. And from home routers to mainframes and supercomputers. For a commercial entity targeting that many devices wouldn't be possible. Not with the same basic code and libraries. There are definitively some top notch products and solutions based on Linux and GNU. But Linux doesn't want anything as it's not an entity. And it's really up to GNOME and KDE to create the desktop environment. It's not the distros that shape them and write all the libraries that software developers use to create their software. As there are no major consumer desktop distro maker there is also no one that can really steer them by sponsoring work and holding discussions either. Not towards a unified desktop environment for normal non-tech users anyway. Also GNOME and KDE has no desire to create a exclusive platform around their software. OS X is a innovative 20 year old OS (since commercial release) and is actually based on work before then (BSD code). OS X UI is really 20 years into it's making and builds heavily on the next/openstep framework. On other Unixes there hasn't been any such heritage to build on, X was an total mess on commercial Unixes and I would actually say it's a lot better and more streamline now. There's just Xorg now, sure there are a lot of window managers but only two major environments now so it's still better then when all the vendors had it's own and couldn't make up it's mind on which direction to go and standardize on. In the middle of the 90's there where like at least 4 major Unix vendors that all had their own workstations.
  • fazer150 - Friday, September 4, 2009 - link

    which Linux distro have you tried? did you try the PCLinuxOS which is atleast as usable as windows xp, 2003?
  • nilepez - Sunday, August 30, 2009 - link

    Most end users are not comfortable with the command line. Linux, even Ubuntu, is still not ready for the masses. This shouldn't be confused with the quality of the OS. It's mostly GUI issue. I've also had some issues with installers failing. Some were solved from an xterm and others just didn't work.

    It wasn't a big deal in most cases, because there's generally another program that can get the job done, but for the typical home user, it's a deal killer. Nevertheless, I must give credit where credit is due, and Ubuntu has made huge strides in the right direction. The UI isn't close to Windows 7 and I suspect it's not close to OS X either, but Canonical is moving in the right direction.

  • Etern205 - Thursday, August 27, 2009 - link

    See this is the problem with some of linux users, you guys are some what always closed in a nutshell. What you may think is easy does not mean the rest of the world will agree with you. In this day and age, people what to get things done quickly and use the least amount of time as possible. For Mac OS X and Windows getting a simple task done takes like 3 simple clicks, for Ubuntu performing the same tasks requires the user to do extensive amount of research just to complete it.

    I'm glad this article was written by a author who has not head into linux terriroty before and it shows the true side of linux from the perspective of a new user.

    If you like to do ramen coding and so forth does not mean the others will. If linux want's to become mainstream, then they really need to stand in the shoes of Joe or Jane.
  • forkd - Saturday, October 31, 2009 - link

    I use mac, windows and linux and I must disagree with your assessment of "this is the problem with some linux users"

    This article, and this site for that matter, comes from the perspective of a windows (and some mac) user looking at linux. More specifically Ubuntu. From this point of view of course Linux is difficult. A person who is linux focused thinks windows is difficult at first too and is likely to criticize. If you take the time to learn something instead of just criticizing something because it is different you may be a lot happier.
  • fepple - Thursday, August 27, 2009 - link

    Check out all the usability studies the Gnome Project does, then come back and make some more generalization :)
  • SoCalBoomer - Thursday, August 27, 2009 - link

    Again - those are done by Linux people. His points are right on. . .someone a while ago did a "Mom" test, which is closer to what is needed, not people who know computers doing studies on usability.

Log in

Don't have an account? Sign up now