By Angela Gunn | Published July 16, 2009, 9:31 AM
Our continuing Linux-vs.-Windows series turns now to the absolute basics — the most universal, and occasionally most important, task you will undertake with any computer. Whatever software and OS you use, whatever you do with the machine, sooner or later you’re going to install, update or upgrade something. How does the process compare on the two platforms?
(Again, Mac OS folk, you’re not the topic of discussion here. If you want to comment on the .dmg experience or other aspects of tending your Apple orchards, please do so in comments, civilly.)
<a href=”http://adserver.adtechus.com/adlink/3.0/5159/429992/0/170/ADTECH;loc=300;key=key1+key2+key3+key4;grp=” target=”_blank”><img src=”http://adserver.adtechus.com/adserv/3.0/5159/429992/0/170/ADTECH;loc=300;key=key1+key2+key3+key4;grp=1830276369″ border=”0″ width=”300″ height=”250″></a>There are two classes of people who shudder at the prospect of maintaining their machines: Civilian users like your mama (or mine, who happily ran Windows Me for years rather than go through the XP install process), and sysadmins who have to handle matters for multiple users, whose machines may or may not be physically present for it. We’ll try to address both in our comparison.
Breaking it down task by task:
Windows applications these days, whether downloaded or installed from optical disc, tend to include installation wizards; at the very least, there’s likely to be a setup.exe program in there. Click and go (or just “go” if it’s an autorun).
Linux packages come in a few different wrappings, depending on your preferred flavor. The installation process for *nix packages used to be rather tedious. Many experienced users are familiar with .tar balls, which are similar to .zip files under Windows. The .tar, .gz, and .tgz extensions all indicated that you had before you an archive, which had to be unpacked and the readme or install file sought in the collection within.
Fortunately, we’re past all that now, thanks to package management — a development that brought Linux installation management on an ease-of-use par with other operating systems by making the install process part of the operating system, not part of the individual package. The first iteration of the genre was given the unfortunate name “pms” (package management system). Perhaps in deference to the greater needs of humanity, it was followed quickly by RPP (Red Hat Software Program Packages), Red Hat’s first essay in the field. Red hat later turned to RPM (RPM Package Manager, thank you Unix recursivity fiends), still a going concern for the Red Hat/Fedora/RHEL contingent. Yum (YellowDog Updater Modified) is one of the most popular package managers for that crowd.
The Ubuntu project (which is based on Debian — the full family name is actually Debian Gnu/Linux, so you know) focused especially on making the install and upgrade process pain-free — and in doing so actually provides a model that closed-source OS vendors would do well to follow. Like its progenitor Debian, Ubuntu uses the APT (Advanced Package Tool)-based Synaptic package-management tool to handle installations (and, as we’ll see, updates and upgrades). APT, which is one of the centerpieces of the Debian/Ubuntu usability philosophy, is the interface to the wide world of DEB packages; instead of every individual package toting its own installation, the smarts for the process lie in the OS itself. Specifically, APT manages and resolves problems with dependencies — a ticket out of the dreaded “dependency hell,” in fact. APT sits atop dpkg, a Debian package manager.
To APT, a repository looks like a collection of files, plus an index. The index tells APT (and, therefore, Synaptic) about a desired program’s dependencies, the additional files required to make the thing run. (Windows users, think “dynamic link library” here.) Synaptic checks the local machine to see if any of the listed dependencies need to be retrieved along with the program itself, and it tells you before installation if it will retrieve those for you.
More importantly, APT handles problems in which a package’s dependencies conflict with each other, are circular to each other, or are otherwise out of control. Windows users will easily recognize that mess: It’s DLL Hell by another name — and if Windows’ Add/Remove Programs function (Programs and Features in Vista) behaved nicely, it would actually do this sort of dependency tracking rather than simply enquiring of the setup.exe files it finds on the computer.
Jeremy Garcia, founder and proprietor of LinuxQuestions.org, notes that “the newer repository-based Linux distributions have gone to great lengths to mitigate the dependency hell issue… it’s something I rarely hear complaints of anymore.”
For our purposes, let’s look at how the process works in Ubuntu. When installing a new app, the easiest method is to fire up Synaptic Package Manager and type in the name or even just a few description terms concerning what you want: “yahtzee game,” for instance. Synaptic knows of several software repositories — collections of software that are carefully maintained and checked for malware and such — and users can add third-party repositories to check if they choose. By default, all repositories signed their packages, providing a level of quality assurance.
Some people find the Linux package management tools and repositories confusing, and some of that is due to the creative (and sometimes silly) naming of the tools. When the rubber hits the road, though, it’s not that complicated. RPM, YUM, RHN, and several others all relate to management of packages in RPM format. APT, Synaptec, Ubuntu Update Manager, Canonical’s commercial package manager — all of these relate to management of packages in the Debian DEB format. And if you happen to want a package that’s only available in RPM format for your Debian system (or vice versa) you can use a utility called Alien to translate between the two package formats, and keep everything on your system under the watchful eye of your chosen package manager.
There are four types of repositories in the Ubuntu universe: main, restricted, universe and multiverse. Main repositories hold officially supported software. Restricted software is for whatever reason (local laws, patent issues) not available under a completely free license, and you will want to know why before you install it. (“Free” in this case doesn’t mean free-like-beer but free-like-speech; if a package may not be examined, modified, and improved by the community, it’s not free.) Ubuntu has sorted matters out in this fashion, but once again it’s a wide Linux world out there, and you’re apt to encounter other terminology if you choose other flavors of the OS.
Software in the “universe” repository isn’t official, but is maintained by the community; sometimes particularly popular and well-supported packages are promoted from universe to main. And many “multiverse” wares (e.g., closed-source drivers required to play DVDs on an open-source system) are not free-like-speech; you’ll need to be in touch with the copyright holder to find out your responsibilities there. Many repositories of any stripe are signed with GPG keys to authenticate identity; APT looks for that authentication and warns users if it’s not available.
To the end user, all this looks like: Open Synaptic. Type in search term. Select stuff that looks cool. Click “Apply.” Done. Because the default repositories are actively curated, there’s very little danger of malware; because the packages themselves must conform with Debian’s install rules, the end user needs to do little to nothing to complete the process; because APT manages every files and configuration component completely, every package can be updated or removed completely without breaking the rest of the system. The applications are even sorted appropriately; my new Open Yahtzee game (I really do knock myself out for you people, don’t I) appeared under Games with no prompting from me at all.
If you’re determined, you can still do old-style installs in Debian, circumventing APT. If you’re compiling your own software or installing some truly paleolithic code, you can end up scattering files and such all around your system, none of it tracked by APT. But you’ve really got to try.
<a href=”http://adserver.adtechus.com/adlink/3.0/5159/429992/0/170/ADTECH;loc=300;key=key1+key2+key3+key4;grp=” target=”_blank”><img src=”http://adserver.adtechus.com/adserv/3.0/5159/429992/0/170/ADTECH;loc=300;key=key1+key2+key3+key4;grp=1479910130″ border=”0″ width=”300″ height=”250″></a>Microsoft some years ago combined its two main update services — Windows Update and Office Update — into one big Microsoft Update service. (For administrators, there’s WSUS, which gives sysadmins greater control over updates.) And then the other programs folks use on Windows often have their own update processes of greater or lesser frequency and persistence.
Linux offers a few choices for managing your updates, but in Ubuntu, again, the method of choice is Synaptic. The system periodically checks online for updates to all the applications it sees on your system. Updates fall into four categories: critical security updates, recommended updates from serious problems not related to security, pre-released updates (mmmm, beta), and unsupported updates, which are mainly fixes for older, no longer generally supported versions of Ubuntu. Most users will automatically update only those patches falling in the first two categories.
The process is otherwise identical to install — click and go. It is recommended, by the way, that users always do updates before upgrades to either individual programs or the OS.
Backing up applications
Windows users installing from optical disc are wise to keep those in case they’re needed later (along with any required license keys, of course). Because the repository model works as it does, Linux users may choose to simply rely on those servers. However, the program APTonCD makes it quite simple to create discs with backup copies of the packages installed on your system. The Ubuntu system must, however, be told about the specific disc from which you wish to install. That’s a three-step system-administration process, and you will need to have the actual disc in hand and ready to drop into the machine. (It can also help you burn discs of packages you don’t have on your system — if you wanted to hand someone a nice clean install disk, for instance — as Jeremy Garcia points out, “There are many corporate environments where Internet access in not available, for a variety of reasons.”)
Or, if you like, on the basic Synaptic menu, there’s an option to export a list of every blessed item on your system that APT is tracking. Take that list to another machine, import it, and Synaptic will install everything on the list, including appropriate updates, from the repositories.
Rolling back applications
Though the Internet often provides little recourse when one seeks an earlier version of a Windows program one didn’t have the sense to back up before an ill-advised install, both Linux platforms have a wide range of rollback ease, depending on which applications you’re dealing with.
Debian / Ubuntu leaders made a decision that new packages would not automatically uninstall older versions. This may or may not present tidying-up challenges for tiny-disked systems — in my own experience I find that the Computer Janitor utility does an adequate job of keeping things in check — but it certainly makes it easier to revert to an earlier version of a particular program.
Updating the OS
Minor updates to Windows are pushed out about once a month, or more often when Microsoft chooses to release an out-of-cycle patch. Major updates — the Service Packs — are less frequent. Desktop systems are often configured to automatically install updates when they become available, while Windows servers are typically configured to notify (but not install) updates so that proper testing can occur.
In Linux, the operating system and the kernel are constantly being updated. That doesn’t mean you need to update every time something changes, and as with Windows there are perfectly good reasons to wait — as with other operating systems, an upgrade can occasionally cause confusion with dependencies and break third-party software (especially, Murphy’s Law being what it is, on production machines). On the other hand, tiny performance improvements, support for newer gadgets, and assorted bug fixes may mean you find the prospect of frequently freshened kernels appealing, especially if you’re not doing the installation for any machine but your own. And many sysadmins would in any case like to automate the update process as much as possible for civilian users.
One good reason to update your kernel is to prepare for a larger upgrade; while a major version installation itself can’t be easily rolled back once installed, the kernel, modules or specific applications all can. A cautious or curious sysadmin could get a preview of how a newer version of the OS treats an older application by upgrading the kernel, checking its behavior, then testing individual applications to see how they behave, rather than upgrading the whole shebang and hoping for the best.
In related thinking, smart Linux users make their /home/ — the directory for data and documents — on a separate partition from the OS installation. That way, changes to the OS — up to and including switching to an all-new Linux distribution — don’t necessarily require you to reconfigure all applications and reload all your documents, photos, and other user data.
Upgrading the OS
Late October is going to a big time for you no matter which OS you use; Windows 7 is expected for release on the 22nd, while Ubuntu is expected to level up to Karmic Koala (did we mention the amusement factor in Ubuntu’s naming system?) on the 29th.
Whether or not you think Windows or Linux has the edge here is perhaps dependent on what you expect from a large install process. With Windows, the process goes relatively well if you remember to do your BIOS upgrades before you start the process (and are sure your current version can be upgraded to the new one). Linux upgrades must be done in lockstep, and if you’re more than one version behind you’ll have to install all the intervening versions until you’re up to date. On the other hand, upgrades for Linux can be done over the Net if you like; when upgrading Windows, on the other hand, you’re wise to get offline completely.
Backing up the OS
Windows users who purchase their machines with the OS pre-loaded used to be supplied with rescue disks in case of disaster; these days, it’s on a partition on the hard drive itself (and heaven help you if the drive fails). Various good options exist for backing up one’s Registry and system files in case of trouble. But things can get a little awkward (or expensive) when it’s time to start absolutely fresh with a clean install. (And every machine needs to do that now and then.) Did you save your license key? If the Debian / Ubuntu effort made nothing else simpler, the “free” part ensures a lot less drama when chaos strikes.
Rolling back the OS
It happens: You need to be where you were, not where you are. In Windows, you’re hosed; format and start again. In Linux… you’re still hosed. You can, however, roll back the kernel as mentioned. (In fact, you’re not really rolling back the kernel itself; the upgrade process leaves the old kernel in there, available from the boot loader just in case. They’re only about 10-15 MB, after all; you have room.) That’s rather helpful for testing purposes, and can save you some unpleasant surprises with individual applications; careful use of the testing technique described above may well spare you the need to roll back at all. (Also, this is an excellent time to have done that /home/ partition we mentioned.)
I am fairly sure RPM supports rollback, although I think it’s disabled by default. I’m not sure about dpkg. It’s also possible to force install an older version of the package you’re having issues with in many cases.
So what’s the verdict? For maintenance of applications and the operating system with minimum pain and maximum control, the answer to this Can Linux Do This question is YES, and well enough that Microsoft and other closed-source shops ought to be taking notes.
Nicely written. But the Apt process might sound a little scary for someone who has never seen it. In Ubuntu, adding a program can be as simple as this: (For those who don’t wish to type ANYTHING, not even a portion of a program name.)
Click on Applications
Click on Add/Remove
Click on the desired program Category
Scroll down and select the program(s) you wish to install
Click on Apply changes.
I’ve found installing and maintaining a Linux system is generally faster and easier than a Windows system. (Especially if you don’t have a bunch of driver disks!) Being able to do all the updates from one place in Linux is so much easier than having to go out to each and every programmer’s site for updates in Windows. I’ve heard others ask Microsoft programmers why Windows can’t offer the same convenience to users, but the ones I’ve spoken with just didn’t seem to understand.
I hope Microsoft will eventually emulate the ease of Linux maintenance.
‘Don’t believe it’s valid to make the comparison ’cause there’s no one way to update/upgrade “linux”. This is one critical issue with me that varies from one distribution to the other; there’s no doubt that some distros provide for updates & upgrades far easier than Windows: take a look at Foresight and Arch.
I am using Linux over a decade and Unix more than two decades. If someone asks me about Updates Linux vs. Windows then you need first ask, what is Linux? Linux is just a kernel, and all another are projects how are added around the kernel to build an Operating System.
But I will take the hit now and ask you Angela Gunn about the command line tools from Archlinux and there “pacman” and Debian and there “apt”. Have you ever used them?
Have you ever compare Windows with the Graphical tools from openSUSE YaST or Debian’s Synaptic?
At the end you will find out, everybody has another taste, see things different and use different tools.
You better ask: “Can a Linux distributions manage updates and upgrades more easily than Windows”? The answer is yes!
I find Ubuntu repositories safe and very convenient to use. However, I don’t agree with your suggestion to try to install software from source: cited from your article “If you’re compiling your own software or installing some truly paleolithic code, you can end up scattering files and such all around your system, none of it tracked by APT. But you’ve really got to try”
No thanks, I have just been through two failed compiled programs. The experience was so frustrating and even with help from experienced users, I could not get the programs to work. Not only they don’t work, there is no uninstall procedure! The “sudo make uninstall” is just for show (tried with Ekiga 3.2.5).
I thanks the programmers for their generosity to give away their programs. But there should be a convenient way to help them to release their works in well know package formats. Installing Linux programs from the source code is way way too complicated.
Linux needs a universal standardized package format.
Ubuntu, Debian are fine. I use a derivation of Ubuntu called Crunchbang Linux on my Asus 901 EEE PC and Synaptic. The modern package manager of Linux are as good and dare I say better than what windows has offered for sometime. However unlike most computer users I don’t want my computer to be a toaster. Which is what 99.99 percent of the world wants. I want to have all the advantages of the modern package system while seeing gobs, and gobs of code scroll up my screen. Hence my work computer, home computers, server all run Gentoo Linux. They have extended the Portage system found in BSD. If your not a coding wizard, at least you can pretend with all the code flying by on your screen as you compile ever single package needed to run a complete system. Great for the control freak and the patient. 😉 Most want there computers to work… just work… like a toaster. I want to know why it works.
Having used the Ubuntu distribution of Linux since 2007, I find that Linux distributions can do anything, though not always in a straightforward, simple, or transparent way.
However, supporting third party applications is usually good. I have waited on the various Canonical/Ubuntu developers to roll in application updates but they generally don’t happen quickly. In fact, they can be several releases back, as some applications change quickly. Firefox 3.5 has not been available as of a few days ago and the normal Mozilla way of updating has been disabled.
Still, Windows doesn’t care for third party software at all and neither does Mac OS X. Of course, you can get a package manager and play behind the scenes but they’re generally software ports from Linux and *BSD. A single point would be extremely nice.
Sorry to sound so frivolous (well not really), but you should have used more acronyms like PITA, WOW or WTF. They are very related to the Windows update process…
Talking about Ubuntu and kernel updates … a kernel update usually requires a reboot. Well, not anymore, at least in Ubuntu. The very nice and free-for-Ubuntu KSplice application makes “rebootless kernel updates” a dream come true. Being available for Ubuntu only, it’s just a start. Linux users expect KSplice to provide the package for other distributions too. Having KSplice on a CentOS server (or any other Linux server) would make any admin extremely happy.
Something that Windows (and even OSX) still does not have.
And yet they don’t have to deal with the hell of video and/or sound drivers.
Upgrading to a new release makes me wonder every time if the existing ATI/NVidia drivers will work as they did before.
Easy things like setting up TV-Out or using your microphone in some trivial application (ex: Skype) are still a pain for the Linux user.
Not to mention the big confusing cloud caused by a non unified sound arhitecture.
Pulse Audio, ALSA, OSS, bla-bla… too many… much too many and none of them doing the right thing as easy as Windows or Mac does. I still dream of a Linux desktop.
Mark Shuttleworth wants Ubuntu to be on par with OSX in two years from now. Well, I guess he is extremely optimistic.
GNOME is a sitting duck, lagging way behind what a modern desktop needs to be/look like.
KDE devs just seem to be playing with the whole package for their own amusement (All I see of KDE is a huge “look ma’ Iwe can do this, it doesn’t matter if it’s just useless eye candy”.
Upgrading to the new KDE 4.x made lots of Linux users curse.
Compiz (as in Compiz, Beryl, Compiz Fusion and the whole history behind) brings some new air to the desktop. But try watching a video or play a game while having Compiz activated …
Well, this is not part of the subject. Reverting to the subject itself, yes, Linux update/upgrade can be a painless process most of the times. Easier than Windows. Not as stupid-proof as Mac though 🙂
Just when I thought my newer PC could handle the latest KDE…. Boy was I unhappy with that thought. KDE 4 was not the direction I thought they were going, but it’s the direction they went. And my newer PC was like my older PCs of days gone by trying to use KDE 3 on them… Almost impossible. So again, I’m back to using either Gnome or XFCE. Good old XFCE, always there when you need it, and always light on the resources. I recently busted out my old 500 Mhz box and tossed Xubuntu on there and likity split, it ran like a champ. I can’t put XP on it, I can’t put Vista on it, I can’t put OS X on it and I can’t put KDE or Gnome on it, but XFCE was there yet again to save the day.
Anyway.. Long story short, I’ve given up on KDE now with the advent of version 4. 😦
BTW, check out Enlightenment DR17 if you get a chance. Eye candy without the KDE Bloat. 🙂
Though while it would be ideal for Windows Update to manage updates to all installed programs, considering they weren’t all “installed” from a Microsoft Repository, issues become onerous.
Where does it get the updates from? How does it know?
Developers for Windows don’t necessarily like following the rules. If Microsoft were to say, “You must use this installer (package manager), and you must include this information”, they’d be up in arms. If Microsoft told them, “You must upload the installation media and updates to this repository”, the users *and* developers would go insane.
Without the repository, you run the risk of the files no longer being where the developer said they’d be during install. This would break the functionality *and* be 100% out of Microsoft’s control. Not something they’d want to allow to happen. Talk about a PR nightmare….
It’s only the installation package format that’s mandated. If MS were to adopt this model, I don’t think they would try and create an uber-repository of all available windows software, and it certainly doesn’t resemble that on the Linux side. Canonical (the business behind Ubuntu) handles this nicely: On a default Ubuntu install, there are thirty-something repositories already defined. Some are maintained by Canonical (analogous to Microsoft maintaining a Windows OS and Office repository), and the rest are maintained by third parties, analogous to Adobe and Google maintaining their own repositories. You want more? Add more repositories for the software you want.
For a real example, Skype maintains a repository for Deb/Ubuntu versions, and the software they make available is on their own servers. It’s just that they are using the DEB file format for their installer. E.g. their instructions are:
1. Add the Skype repository*: deb http://download.skype.com/linux/repos/debian/ stable non-free
2. Reload or update the package information
3. Install the skype package.
From that point on, Skype is installed on your Ubuntu system, AND updated automatically along with everything else on the system. To the end-user, it looks like one process, but in reality each package looks for updates from its own maintainer; Canonical, Adobe, etc etc. Now if I could just point Office 2003 (running under Wine) to a Microsoft repository…. 🙂
I shouldn’t have worded the first sentence of that last paragraph quite the way I did…
Supplant “Without the repository” with “Without the Microsoft repository”.
If it’s out of their control, Microsoft will not actively code to support it. Losing a repository and ending up with a broken update looks bad for Microsoft, even if they had nothing to do with the repository in question.
Now, there’s *nothing* stopping a 3rd party group of folks from doing something like this (other than scale, of course), but of course, without the built-in functionality…who’s going to use it…or even hear about it?
Someone could indeed launch a tool similar to Steam, for desktop aplications, or Steam could be extended to manage more apps than just games.
They already have a great way of managing licenses and a pretty nifty online-store for apps(games).
this is an ongoing debate.. linux vs windows. i pasted with comments as its quite informative. do take a look at original article from betanews.