What's the single biggest advancement Linux has brought to the industry? Package management. Or more specifically, the ability to install and upgrade software over the network in a seamlessly integrated fashion — along with the distributed development model package management enabled. The distro (short for "distribution") model for GNU/Linux has componentized the OS, and blurred the line between applications and OS. You choose a distro based on what you need to perform your own tasks, how you like to work, what hardware is available, and of course, your environment (scientific, gaming, video editing, database work, a desktop that closely mimics Windows, etc.). When you get down to it, Ubuntu is not an OS as much as a complete software "package" or set of components built on top of the Linux Kernel, in Ubuntu's case, Debian.
This is good news, because unlike Microsoft, which takes years to bring out another version of Windows, it becomes far easier to push new innovations out into the marketplace and generally evolve the OS over time. For many distros, this is every six months, which means keeping up with innovation, and [software] package management is the key to hold it all together.
Let's start with what we know. With Windows, you visit download sites like FileForum, Portable Freeware, osalt.com, File Hippo and others to search for or download the latest. In many Windows programs, you can also set them to automatically check for updates each time you open them, or you can use a program like WebSite-Watcher to scan the web for page updates of selected programs. Windows itself has long had its own updater which maintains the OS with Windows Update.
GNU/Linux is somewhat similar, only the process is almost entirely automated for system, drivers, and user-installed software. Like Windows, there are thousands of programs, many of which aren't that good, or a percentage of which has been abandoned. The most common open source repository is SourceForge.net, which hosts over 153,000 projects! Even DonationCoder.com hosts its own star coders at DonationCoders. Each distro comes with an installed base of applications. "Small" distros like Puppy Linux limit this to a bare minimum, allowing the user to build their own system's software. Larger distros like Ubuntu, SLED 10 (SUSE Linux Enterprise Desktop), or Fedora can install as much or as little as you want during setup. It's up to you to decide which is you. Here's an example, along with the configure subdialog to the right, of automatic updates in a GNU/Linux distro:
Within each distro (a specifically built copy of Linux) there is a [software] package manager. By default, many package updaters are set to scan, download, install, and clean up new versions of the software already installed on your system. In many distros, including Fedora and SUSE, they use a specific format called RPM, which originally stood for "RedHat Package Manager"; now, however, it stands for RPM Package Manager. For Ubuntu and Debian-based Linux distros, they use .DEB packages. Also, each distro manages software via a package manager such as APT (Advanced Package Tool), YUM (Yellow dog Updater, Modified), YaST (Yet Another Setup Tool), and SMART (supports RPM, DEB and Slackware packages on a single system, but does not permit relationships among different package managers). Each of these allows you to manage RPM/DEB packages via either the command line or a GUI.
I'll use SUSE Linux Enterprise Desktop as an example. The easiest way is to use the graphical application YaST2 (Yet Another Setup Tool). It can handle all your software management, can resolve dependencies, check for updates, and even use mirrors on the fly because Novell is using a dynamical referrer on the main download address. YaST safely guides you through the installation procedure, or if you want, you can set all software — both system and user-installed to update automatically (with various conditions, such as final versions, with or without alerts, and so on). YaST (and this is true for other installers mentioned above) automatically detects the available system hardware and submits proposals for driver updates, even proprietary ones.
YaST et al. are also a reliable aids for the user administration, security settings, and the installation of additional software. For instance, with the respective YaST module and Samba, even Linux n00bs like me can easily network Linux and Windows hosts. Graphical dialogs facilitate the configuration of DNS, DHCP, and web servers in the home network. If you want to add another source to your updater (YUM, YaST, etc.), click Software and there start the module "Installation Source." There you will find a list of all currently configured package repositories. Click the Add button to add another one. Click on the button and choose the protocol you want to use (usually http or ftp). After that, enter the source line into the first field. There are lots of software repositories around, but you have to make sure that they work with your distro is all. It's not a big deal, much like checking whether a Windows app will run on Vista or on an older OS like Win98.
Just like Windows' Add/Remove Software (or Contrl Panel > Programs and Features in Vista), open the YaST control center, select Install and Remove Software. A second window will open from which you can search for a particular package. Let's say you wanted to install a video conferencing application, but you didn't know what the application was called. Enter the word "video" in the search field and all of the packages that have video in either their package name or description will appear in the window to the right (you can specify other search criteria on the page). Click on a package name and a description of the software will appear in the tabbed 'Description' window in the right lower half of the screen (check the figure below). If this is the package you want, click on the check box next to the package name, then click the accept button in the bottom right-hand corner. Should there be dependencies associated with the package you chose to install, a popup window will appear informing you of this fact. Click Continue and the installation will proceed. That's all there is to it!
Part-01: My journey from Windows to Linux
Part-02: Which Linux distro to choose?
Part-03: First impressions and first problems after installation
Part-04: The "User Guide" as life raft, more n00b problems
Part-05: Ten Great Ideas of GNU/Linux
Part-06: Software Management is not that different