Monday, February 16, 2009

Software as a Subversive Activity, Part 13: The Linux Repository

Installing software on Linux Monday: The repository is your new best friend

Our word for the day this fine Linux President's Day Monday is “repository.” I admit, it was one of those alien words that buffaloed me when I first started learning. Linux geeks, like any group of insiders, throw around terms that are incomprehensible to outsiders, but it turns out the concept is really easy. A repository is simply an online software library that's built into the operating system.

We've all learned how to install Windows software. You either buy an expensive CD or you go out to the web to find and download a file. Either way, you follow the prompts, wait, wait some more, and then usually get prompted to reboot.

In the early days of Linux, software installation was trickier, with lots of text command voodoo and even compiling code. That reputation is one of the things that scares people away. But modern distributions have for the most part made this unnecessary.

For one thing, there isn't as much need to install programs in the first place. With Windows you install the operating system, or get the machine with Windows pre-installed, and you can't do much. You have to install the OS and then install the applications. In Linux, most distributions have applications like office suites and media players bundled in, so you can start crunching your spreadsheet right away.

But if you do need some additional software, the repository is waiting for you.

The ├╝bergeeks in charge of each distribution manage the repository on their end. One of the criticism of open source world, in fact, is that there's not One Big Repository. But Linux is not one size fits all like Windows or (especially!) Mac, and different distributions have different philosophies about how and how often they update the repositories. Some repositories are very strict on including only free and open source software, while others make exceptions for frequently needed drivers. The repository is free, but some distributors will sell you a disk(s) with the whole thing on it/them for a nominal price.

Some distributions make it a priority to have the latest versions of programs, others prefer versions that are a little older but more thoroughly tested. For example, there was a lot of discussion in the Linux community last fall when Ubuntu decided to stay with version 2.4 of Open Office for their October release of version 8.10 (“Intrepid Ibex”; Ubuntu names each upgrade after alliterative animals) rather than upgrade to the relatively new Open Office 3.0. And the current buzz is that the next update (“Jaunty Jackalope”) won't have the newest version of the Linux kernel.
You talk to the repository on your end through a program called a package manager. Steven Vaughn-Nichols explains it well:
Most Windows users have already seen downloadable software sites like TuCows and Download that resemble Linux's package managers. The difference is that package managers are integrated into Linux, while download library Web sites are stand alone operations.

In Ubuntu, the package manager is called Synaptic, and it's easily accessible through the menu: System> Administration>Synaptic Package Manager.

You'll be prompted for your password before you make any actual changes. Synaptic has a search function, so if you know the name of a program you can find it. If you select a program that requires additional software, Synaptic will inform you of these dependencies and select them for you. This means you won't be stuck with an incomplete install that's looking for OBSCURE.DLL like you are in Windows.

Ubuntu takes a middle ground on the free software issue. The prepackaged software includes some non-open source drivers. It doesn't include the “codecs” (short for code-decode) that you need to play popular audio and video files like .mp3s. The lawyers think this would raise legal issues that would interfere with the open source mission.

But the team at Canonical, Ubuntu's distributors, are realistic and know that you're gonna want that stuff, and they make it an easy one-step in the repository. Open up Synaptic and search for ubuntu-restricted-extras. You'll be playing your tunes and watching YouTube in no time.

Beginners who are happy with the distribution as packaged don't even need to look at the package manager. Ubuntu will push the updates toward you. A couple times a week, at about 8 a.m., I see a little icon that tells me an update is available—-a sunburst for a minor tweak, a red arrow if security is involved. Usually I deal with it right then, but if I'm running late for work I can wait. Unlike Windows, Linux doesn't keep bugging me.

Another advantage to the repository system is that it gives you some reassurance. If the distribution managers include a program or upgrade in the repository, it's a sign that they've checked it out for security and compatibility. You're not left hanging on your own. Synaptic also lets you repair and uninstall programs and clean your system.

In open source you also don't have to deal with a couple of special Windows annoyances. You know those “trial versions” that get you started, but then after X number of days want you to pay, or don't let you save? (The worst is that brand-new big-box-boughten computer with the trial version of Microsoft Office, that you can keep after 30 days for just a few hundred bucks.) There's no crippleware, nagware or begware in the open source world.

The other thing you won't find yourself doing is constantly rebooting. Only Linux kernel upgrades require a reboot. (My current no-reboot record is 28 days; I could do better but last week's minimal distribution post had me re-booting almost as much as I did back in Windows.)

If you want to get geeky you can try the command line. In Ubuntu,
sudo apt-get update

and a password will update your whole system.

You can also download a file and do it yourself. Here, for example, is a cheat sheet on installing Open Office 3.0 on Ubuntu. If you decide to get adventurous, blogger Skuunk offers some good advice:
Make sure you have more than one Internet enabled computer in the house before you do anything...

When going online for info on configuring your computer, don't automatically use the first solution you read... if an article tells you to go to your terminal and do anything with sudo, vi, pico, rm or gedit think twice. Also be wary of shell scripts (.sh files).

You can take it even further and do it the old fashioned way: get and tweak the source code and compile it yourself. There might be some benefits in customizing your software to your system, but most of the users I know think “customizing” means choosing a wallpaper, which they invariably call a “screensaver.”

No comments: