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
POST A COMMENT

197 Comments

View All Comments

  • viciki123 - Monday, February 22, 2010 - link

    I have a new website!wedding dresses uk:http://www.weddingdressonlineshop.co.uk">http://www.weddingdressonlineshop.co.uk Reply
  • Jillian - Thursday, December 29, 2011 - link

    YOu are spamer .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. http://www.idresses.co.uk Reply
  • zerobug - Monday, February 01, 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.
    Reply
  • MarcusAsleep - Thursday, December 17, 2009 - link

    Quick Startup: OK, Windows is fast - at first, well let's say that is if you install it yourself without all the bloatware that come standard on Windows store-bought PS's (we bought a Toshiba laptop for work with Vista that took 12 minutes after boot-up for it to respond to a click on the start menu - even on the third time booting.)

    Windows startup is often burdened by auto-updates from Microsoft, anti-virus, Sun-Java, Acrobat Reader, etc. etc. that slow down the computer on boot-up to where your original idea of "hey I just want to start my computer and check my email for a minute before work" can take at least 5. I can do this reliably on Linux in 1. Yes, if you know a lot about Windows, you can stop all the auto-updates and maintain them yourself but 99% of Windows users don't have time/or know how to do this.

    Trouble-free: E.G. I installed Linux on a computer for my wife's parents (Mepis Linux) 7 years ago for email, pictures, games, web, letter use and haven't had to touch it since then. This is typical.

    For Windows, often I have done fresh installs on trojan/virus infected computers - installed working antivirus and all Windows Updates (not to mention this process takes about 2-4 hours of updates upon updates + downloads of the proper drives from the manufacturers websites vs about 1 hour for an Ubuntu install with all updates done including any extra work for codecs and graphic drivers) - only to have to come back a couple months later to a slow again computer from users installing adware, infected games, etc.

    Free: Nearly every Windows reinstall I've had to do starts with a computer loaded with MS Office, games, etc. but upon reinstall nobody has the disks for these. There is a lot of "sharing" of computer programs in the Windows world that is not very honest

    With Linux, you can have the operating system plus pretty much anything else you would need, without having to cheat.

    Adaptable Performance: You can get a well-performing Linux installation (LXDE Desktop) on a PIII computer with 256MB of ram. The only thing that will seem slow to an average mom/pop user would be surfing on flash loaded web pages, but with adblock on Firefox, it's not too bad. With Vista loaded on this computer, it would be annoyingly slow. You can often continue to use/re-use computer hardware with Linux for years after it would be unsuitable for Windows.

    I think these features are of high value to the average user -- maybe not the average Anandtech computer user -- but the average surf/email/do homework/look at photos/play solitaire/balance my checkbook user.

    Cheers!

    Mark.
    Reply
  • SwedishPenguin - Wednesday, October 28, 2009 - link

    Using SMB for network performance is extremely biased. It's a proprietary Microsoft protocol, of course Microsoft is going to win that one. Use NFS, HTTP, FTP, SSH or some other open protocol for network performance benchmarking. Alot of NASes do support these, as they are Linux-based.

    Furthermore, using a Windows server with SMB with the argument that most consumer NAS use SMB is pretty ridiculous, these NASes are most likely going to use Samba, not native SMB, the Samba which is implemented in GNU/Linux distributions and Mac OS X, not to mention that most of the NASes that I've seen offer at least one of these protocols as an alternative.
    Reply
  • SwedishPenguin - Wednesday, October 28, 2009 - link

    The ISO thing is pretty ridiculous, creating a simple GUI in both GTK and Qt and integrating them into Gnome and KDE should be pretty damn easy, though I suppose integration with the respective virtual file systems would be in order, in which case it might get slightly more complex for those (like me) not familiar with the code. There's even a FUSE (userspace filesystem) module now, so you wouldn't even need to be root to mount it.

    About the command-line support, IMO that's a good thing. It's a lot easier both for the person helping and the guy needing help to write/copy-paste a few commands than it is to tell the person to click that button, then that one then another one, etc. It's also alot easier for the guy needing help to simply paste the result if it didn't help, and it makes it much easier to diagnose the problem than if the user would attempt to describe the output. And you usually get much more useful information from the command-line utilities than you do from GUIs, the GUI simplifies the information so anyone can understand it, but at the price of making debugging a hell of a lot more difficult.
    Reply
  • nillbug - Wednesday, September 30, 2009 - link

    It must be said that Ubuntu and the major Linux distributors all have 64bit O/S versions since a long time. The reason behind is to allow users to benefit from memory (+4MB) and 64bit CPUs (almost all today) gaining a better computing experience.

    If this article was a private work of the author to provide him an answer on whether he may or may not move to Linux, people should advise him the above mentioned. As for an article intended to be read by thousands it must be pointed out that it's conclusion is a miss lead.

    In face of today's reality (and not the author reality) why did he never mentioned the 64bit Ubuntu systems? I guess he's final thoughts then would've been much more in favor of Linux.
    Reply
  • nillbug - Wednesday, September 30, 2009 - link

    It must be said that Ubuntu and the major Linux distributors all have 64bit O/S versions since a long time. The reason behind is to allow users to benefit from memory (+4MB) and 64bit CPUs (almost all today) gaining a better computing experience.

    If this article was a private work of the author to provide him an answer on whether he may or may not move to Linux, people should advise him the above mentioned. As for an article intended to be read by thousands it must be pointed out that it's conclusion is a miss lead.

    In face of today's reality (and not the author reality) why did he never mentioned the 64bit Ubuntu systems? I guess he's final thoughts then would've been much more in favor of Linux.
    Reply
  • seanlee - Tuesday, September 15, 2009 - link

    I have read all 17 pages of comments…a lot of Linux lovers out there… and they all purposely ignore few important things that make Windows successful, which in term, makes most Linux distribution marking failures, I have used Linux on my net book and my ps3, and I absolutely hate it.
    1. User friendly. No, CLI is not user friendly no matter what you say; no matter what excuse you use; no matter how blind you are. NOT ONE COMPANY dare to provide their mainstream products to be CLI only, from things as simply as ATM, ipod, to things as complicate as cellphone, cars, airplane. That ought to tell you something--- CLI is not intuitive, not intuitive=sucks, so CLI = sucks. You command line fan boys are more than welcome to program punched cards, expect no one use punched cards and machine language anymore because they are counter-intuitive. Having to do CLI is a pain for average user, and having to do CLI every time to install a new program/driver is a nightmare. GUI is a big selling point, and a gapless computer-human user experience is what every software company looking to achieve.
    2. There is NOTHING a Linux can do that windows cannot. On the contrary, there are a lot of things windows can do that Linux cannot. I’d like to challenge any Linux user to find engineering software alternatives on Linux, like matlab, simulink, xilinx, orcad, labview, CAD… you cannot. For people who actually user their computer for productive means (not saying typing documents are not productive, but you can type document using type writer with no CPU required whatsoever), there is nothing, again, I repeat, NOTHING that Linux can offer me.
    3. Security issues. I disagree with the security issues that windows has. I can set up a vista machines, turn it on, luck it into a cage, and it will be as security as any Linux machine out there. Hell. If I bought a piece of rock, pretend it was a computer and stare it all day, it would be the most secure system known to the man-kind. Linux’s security is largely due to one of the two reasons: 1. Not popular, not enough software to support and to play with. 2. Not popular, un user-friendly. Either of them is not a good title to have. It is like you are free from the increase of the tax not because you have your business set up to write off all your expense, but because you don’t make any money thus you don’t have to pay tax.
    4. There is nothing revolutionary about Linux for an average user, other than it is free. If free is your biggest selling point, you are in serious trouble. Most people, if not all, would pay for quality product than a free stuff, unless it is just as good. Obviously Ubuntu is never going to be as good as windows because they don’t have the money that MS has. So what does Ubuntu have that really makes me want to switch and take few weeks of class to understand those commands?

    Be honest, people. If you only have ONE O/S to use, most of you guys will chose windows.
    Reply
  • kensolar - Monday, October 26, 2009 - link


    I hope you realize that your hated is showing so strongly that absolutely no one cares what you say.
    That said, I don't know how to use a cli and have been successfully using Linux for 3 years. I found the article to be a fairly fair one even though the author is so unfamiliar with Linux/Ubuntu. As he does not use the default app's in windows, linux users don't use the defaults only in linux. K3B is far superior to Brassaro and so on. In addition, I don't think he let on very well as to the extent of the software available in the repositories (with addition repositories easy to add). Several hundred app's, 20,000 programs, even security app's and programs ranging from easy as pie to complicated. (for those of us how have a computer that is more than a rock) I personally do audio mixing, video transcoding, advanced printing....all with graphic interfaces.
    BTW, I learned how to turn on a computer for the 1st time 3 1/2 years ago, I stopped using windows a little over 3 years ago and have no reason to go back. I find it too hard, limiting and frustrating to use. Plus, I can't live w/o multiple desktops, the author didn't get it yet, but once you get used to them you can't go back.
    Well, I've said enough for now, can't wait for your next article.

    Reply

Log in

Don't have an account? Sign up now