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

  • tabuvudu - Saturday, August 29, 2009 - link

    The article is a good job overall. Below are a few of my own observations concerning the article and linux in general.

    ###Package manager
    I never used Ubuntu, so cannot comment on apt. I tried SuSE, mandriva and eventually ended up with Gentoo. I think package managers are the best part of linux. Gentoo's portage and 'emerge --sync' allows you to be always up-to-date in terms of software, no need to ever reinstall the system. It is CLI-based and sometimes you do have to play a bit with USE-flags and compatibility, but in general 99.99% of my software needs can be satisfied by portage.

    ###Command Line Interface
    For my home needs I switched from windows to linux about 4 years ago. At work I still use windows, but that is due to corporate policies rather than preference. Originally CLI was something terrifying. It took me some time to learn and adapt, but now I do most of system tasks in CLI.

    ###Video drivers
    I does take some effort when doing something non-standard (1080p projector connected to HDMI via av-receiver). But in general in gentoo it is usually as easy as typing 'emerge [nvidia]/[ati]-drivers'. Even double-monitor setups, which I have two. Dont forget the open-source xorg drivers, which are usually fine for simple desktop and come pre-bundled.

    ###Gaming...
    ...is much harder under linux. In my case not relevant, as I spent less than 1% of my time to that over the past 2 years. Others may find this a real obstacle for migration.

    ###Syncing...
    ...your devices is also a headache. I even once succeeded in syncing my windows mobile 5 device with evolution. But amount of efforts taken for that was far too great. I never even tried syncing my nokia phones after that.

    ###Usage scenarios
    I think you judge Ubuntu (and linux in general) in very windows-centric usage patterns. Ubuntu is unlikely to out-windows the original, although OSX seems to have done just that. Even the approach is windows-centric - you take a windows app and compare linux against it. The point is that linux in general allows user to open and develop completely different usage scenarios, which are beyond windows. Allow me to elaborate on the basis of my own experience.

    ###In search of killer app...
    You note in the article that there is no linux killer app. I disagree.
    1. I run linux homeserver. It has proxy (squid) and attached antivirus filter (clamav+squidclamav). It has array of software raid (mdadm). I also run web-server (apache) with gallery of photos (gallery2). There is a mail server (postfix) for a few accounts. Filesharing is done via nfs and samba. Finally I run mythtv backend server with 4 tuners. I never tried to replicate this software stack in windows, it is likely possible but require some pretty expensive licenses. Some of the thing like mythtv server are impossible under windows to the best of my knowledge.

    2. dvdrip + transcode allows me to rip dvds and transcode them simultaneously on 4 client machines with total 12 processing cores. Transcoding is usually done under 15 mins.

    3. I mentioned mythtv. I have centralised server and a number of clients. TV at the house is done via LAN, i.e. small x86 boxes with output to TV screen. Integrated mythtv client interface allows watching movies or listening to music from central storage, light browsing and so on at every TV.

    4. The small x86 boxes are network-booted from server (in.tftpd + nfs). This allows easy management of software, i.e. single image for all clients. Never tried that under windows, likely possible but costly.

    5. One of the clients is an HP thin-client with only 1G of local storage. I ended up network-booting it anyway, but initially compiled a full gentoo system (kernel, X, fully-fledged window manager (XFCE-4), mythtv client, browser (firefox), mail client (claws-mail), media player (mplayer + GUI)) under 1G. If I spent a bit more time, I think I could even fit office in that space. Not possible under windows.

    6. There are other things that i have not even explored. Like asterisk for ip telephony. Or projects like opengoo, which allow you to run your own server-based set of office apps.

    ###The bottomline
    I think a fair comparison should not focus on things that windows is known to do best. I think getting familiar with linux will enable one to find his own killer app, which cant be replicated in windows at reasonable cost. But this would require a reasonable time and efforts, which are beyond the scope of the article.

  • tabuvudu - Saturday, August 29, 2009 - link

    a couple of more things which i forgot to mention in my previous post:

    ###mounting network shares
    your troubles seemed quite strange to me. Maybe this is because of Ubuntu implementation. This is usually done very well by linux. I do it in /etc/fstab. I agree with some previous posters, this is largely due to lack of linux experience, so should not be used in final assessment.

    ###benchmarks
    are quite useless. I dont think you should dedicate much time in the article to that. For majority of desktop applications, plus or minus 10-15% does not make much difference.

    ###other interesting projects
    another example of ltsp. Again, there are alternatives in windows, but licensed and pricey.
  • Kjella - Friday, August 28, 2009 - link

    If you have a Windows CD lying around I highly recommend using virtualbox and installing Windows on it. For any low-performance application it'll work 100%, but it's not made for gaming. But except for gaming it should reduce your dual boot time to near zero. WINE is great for hackers and idealists but unless the application got a platinum/gold rating new users should not use it.

    As for support time, let me put it this way... do you keep XP for 10 years to run 10 year old installations? As the distro is for the most time supplying the applications, it's like being stuck ten years in the past. This is more like a free upgrade from Office 97 -> XP (2000) -> 2003 -> 2007 -> 2010 every few years.

    Is it pefect? No. But a lot of it is that Canonical can't tell you the easy ways of fixing things. Most of the things on this page should be done first time you boot a fresh Ubuntu install:

    https://help.ubuntu.com/community/RestrictedFormat...">https://help.ubuntu.com/community/RestrictedFormat...

    Good luck to everyone that feel like trying :)
  • yasbane - Friday, August 28, 2009 - link

    It's great to see Linux on the front page of Anandtech once again!

    Linux use on the Desktop is getting more attention, and its use is growing (though still only a very small fraction of the total market). I'm a huge fan of Linux (as well as Solaris and BSD), and I found Ryan's review very fair and informative. As with any OS, it is important to accept weaknesses as well as strengths, so that it can grow and improve. The strength of Linux has mostly been in the server world, but especially in the last couple of years, it has become much more user friendly on the desktop. These days, I have been able to install it on machines for people with no prior familiarity of Linux, and have found, in most cases no significant issues. There are definitely still things that can be improved though, (audio issues are the biggest one), but overall it is good news. Some people have commented 'Why bother? Windows does everything I need!', but I think competition is a good thing for desktop computing (and just about anywhere), as the saga of Internet Explorer's decline in the demise of Netscape proved. Mac OS X of course is there, especially at the higher end, but Linux is also beginning to make an impact on generic hardware (Netbooks being a good example), which has meant that Microsoft has had to lift its game and drop prices.

    To answer Ryan's question, in terms of what I would like to see for Linux on Anandtech: in addition to benchmarks for consumer hardware running Linux, guides such as building a home server or HTPC, where using Linux is an appropriate option, alongside Mac or Windows; for some things, such as gaming there's much less point of course. IT Anandtech used to feature Linux server and virtualisation benchmarks, which made a lot of sense since Linux's greatest strength is in servers, although these benchmarks and reviews have been mysteriously absent lately. And of course, news from the world of Linux, such as new products with Linux on them, new kernel features, popular distro releases such as Ubuntu, and general headlines (e.g., Dell's recent comment that netbook return rates were no higher for Linux than for Windows).

    Great to read the comments. Many thanks, Anandtech!

  • beginner99 - Friday, August 28, 2009 - link

    This explains why I'm not using and won't use Linux in the near future for my regular PC. As long as I need windows anyway (and pay) there is for me even as "above average" user no need for Linux. I think I can do anything I need on windows, so why should I get Linux additionally to Windows? Makes no sense for me and not for most other users that are not developers, geeks or idealists.
    That will only change if you do not need windows at all, eg. you can game on Linux with same performance than on windows.

    The only thing I can imagine using Linux is on a HTPC. Take one of the new ION nettops without OS and put on LinuxMCE or Linux with XBMC. But I have no idea how easy that is and how good it works. But there I would really benefit from the fact that Linux is free. (else the whole price will go up by like by 50% ;)).
    I might actually try.
  • kc77 - Friday, August 28, 2009 - link

    As someone who has used Ubuntu primarily for at least 4 years now I can say there are things that only come with time. Namely what applications to use for what. I primarily use Ubuntu because out of the box it installs most of the stuff I need right out of the box. However, that doesn't mean it installs EVERYTHING you need. Particularly when it comes to audio management. That package manager is your GOD in more ways than one once you realize that aside from running the latest drivers (which aside from us there aren't many other people that do and you aren't gaming on Linux unless you are using Cedega or Crossover) it provides you really with just about any program you need.

    So...
    Audio Management - Remember you can mix and match KDE/Gnome. So for this I would use Amarok 1.4. It can sync with iPods and offers the ability to have your music collection residing in a SQL database. That alone had me smiling for days. I have about 70GB of music which it can catalog in about 5 min. Try that in iTunes or WMP. With it being in MYSQL any program I want to have access to my
    collection can. In 9.04 you'll need to add the repository as it installs 2.0 of Amarok by default (which isn't as feature rich).

    As an aside, Rhythmbox can now rip from inside the program. It might just be because you are using 8.04 but I know it does it now. However, Sound Juicer gives you more options with MP3 Tags as well as file types.

    Video Editing / Mastering

    If you want a program like Nero Vision, check out Devede, ManDVD is pretty good for DVD mastering. Both of those should be in the Package Manager. If they aren't their web sites offer debs. Just download and double-click.

    Burning
    If you don't like Brasero head to the package manager and get K3B. It's about as close to Nero as one can get.

    SMB
    The problems you've experienced are due to version. Browsing the root of a server has been fixed. It takes a little longer for the shares to appear than I would like it to, but it does work now.
    Mapping "drives" as it were depends on the route you take. "Connect to Server" I believe creates a mount point under your media folder. I really haven't had much of a problem with this as most programs do recognize bookmarks, and for all of my shares one of the first things I do is set it in my FSTAB which essentially hard links my shares which avoids the problem entirely as every program can see a mount point. Basically there's about 5 different ways to go about this issue just choose the one that works best.

    ISOs
    One thing with ISO is that File Roller reads them natively. So unzip it and install from there. It's not like hard drive space is scare now a days.

    Customization
    My closing thought is that remember Ubuntu is not Gnome. Meaning that Ubuntu just creates the packages for it's distribution. Everything in linux is customizable. Don't like the bar at the bottom? Delete it. Want a tray like OSX? There's tons to choose from. I've done some OS modding and I can make Gnome look like Windows XP or Mac OSx (and mimic it's functionality). You aren't limited here.

    Thats' the thing with linux the more time you spend (and really I'm talking about days here not months) the more programs you'll come across which will do what you want. Don't like Transmission? Use Ktorrent. Hell even Utorrent works very well with Wine.


    Overall I liked your review.... even though I've had to wait for it...




  • dfonseca - Thursday, August 27, 2009 - link

    Great article, congrats. Looking forward for part 2.

    My only criticism is that for both intermediate (topic-specific) verdicts and final (first?) thoughts, the non-techie average-joe end user point of view is given way too much weight. Not only do these people not read AT, but they also don't use objective judgement to decide their OSs. These are the people who will go with the flow, which will be dictated by other people. In short, the article focuses on helping joe6pack, but joe6pack doesn't care.

    I believe it would be more productive, when passing comparative judgement, to narrow the focus on aspects more strongly connected to wide adoption - deployment (installation & out-of-the-box functionality), large-scale maintenance ease, support, productivity (office) software, and why not, bang for buck. Some of them are already being considered, and maybe they just need to be given higher relevance.

    Cheers
  • dontruman - Thursday, August 27, 2009 - link

    I have used Windows since the 3.0 days and am currently running RC7 on my home desktop. I think that it is significant that the hardware resources required by Ubuntu and Linux in general are much lower than Windows and can give new life to an old laptop or desktop. Ubuntu recognized and set up all the hardware without a hitch on my Dell Inspiron E1505 and my newer office Q9550 quad. A reasonably older system running on Linux can perform standard tasks at speeds close or equal to newer hardware running any of the Windows operating systems. The boot time for Ubuntu is also significantly shorter.

    It's no coincidence that the ASUS PC1000 netbook, with its solid state hard drive ships with Linux. Mine came with a version of Mandriva linux that is obviously designed for newbies, and doesn't provide nearly as large a set of software repositories as Ubuntu. I replaced it with Eee specific version of Ubuntu and have been very pleased with results. It quickly performs daily tasks such as office work via Openoffice 2.5, browsing (I use Opera) and email (Thunderbird). The difference in observable speed between my Eee and the i7 system I recently built is negligible. Of course I'm not talking about CPU intensive tasks, including Google Earth, where the i7 is many magnitudes faster. But for everyday mobile tasks I use the Eee. (The Inspiron is way too hot).

    I have to disagree about the Synaptic Package Manager. You can Google 3rd party Linux repositeries, such as Medibuntu,that contain multimedia codecs and other interesting Linux software. (Be careful & research 3rd party repositories to avoid unpleasant surprises.) You can add these 3rd party repositories to your permanent list of software sources so that when updates to that software are created Ubuntu notifies you and allows you to accept the updates you want. Using a USB powered external DVD drive I can watch movies on my Eee or rip & compress them on the i7 system and put them on a flash drive or card. Once you get the comression formats tuned you have a good, light weight, computer/multimedia system with excellent battery life; good for two movies. All this on a two year old Intel Atom powered netbook.

    I've played around with Linux for some time but I found it too alien & command line driven using a command set that has very little in common with MS or DR DOS. But over the last several years Linux has been improving at an accelerating rate. All that's needed now is a high quality Wine (Windows emulator) program that will allow you to run all your Windows specific software on Linux without a performance loss. It's a difficult undertaking but Wine has been steadily improving and there are now commercial Linux distros that guarantee compatability with specific Windows programs.

    I recommend putting it on an old hard drive & give it a whirl. And try several versions; there are a lot of free ones out there. I recommend Ubuntu, OpenSUSE and Mandriva for starts. Why pay for the cow when you can get the milk for free?
  • fffblackmage - Thursday, August 27, 2009 - link

    Unfortunately, most of the same problems mentioned in the article are keeping me from switching to Ubuntu as my primary OS. As far as gaming is concerned, I'll be going with Win7 (I'm still using XP atm).

    If I ever get a netbook or non-gaming laptop, I'll certainly consider Ubuntu. However, the likelihood of moving to Ubuntu when the laptop comes with Win7 will probably be very small, unless I can somehow get a refund for not using Win7.

    Also, I guess some people do like the new GUI in MS Office. I found it annoying as I'm still using to the old GUI. But I suppose in time, I may learn to accept it like how I eventually accepted the XP look.
  • sanjeev - Thursday, August 27, 2009 - link

    Yesterday, the manufacturer was Canon, today its "Canonical". Is Ubuntu manufactured by different(or types) vendors ?
    ... just asking :).

    I'm yet to finish 25 (+ 11) more pages .

Log in

Don't have an account? Sign up now