.comment: Your Friendly Neighborhood Linux Salesman - page 2
Preaching to the Choir
There is probably general agreement that Microsoft is somewhat vulnerable right now, but there seems to be, too, a general agreement that all we need to do is sit around and wait for the herd (who haven't heard about Hurd, but then again, when you get right down to it, neither has anyone else) to come stampeding to Linux. It doesn't work that way. Inertia is a powerful force. It's what keeps people in jobs they hate, and what sends them through windshields as they daydream about better jobs and accidentally discover that old trees are stronger than new cars. It's certainly powerful enough to keep them from undertaking anything as frightening as -- gulp -- installing Linux.
They may be aware of Linux, maybe even admire the certified geeks who have the cojones to actually run the thing. All they know for sure is that it is really difficult to install and use.
Now, as you and I know, all of that (except the part about us being brave and admirable) is nonsense. The majority of modern Linux distributions are a piece of cake to install, and even do so in such a way as to live peaceably next to their popular but crippled neighbors from the place that currently is apparently denying Steve Ballmer his meds (or else slipping meds into his free soft drinks). Give somebody a SuSE 7.2 boxed set, or the upcoming Red Hat 7.2 (or, I'm sure, the current or next Mandrake; maybe Slackware, which is on my short list of distributions to which a machine should be devoted), and they'll have little problem getting it working on their machine.
Of course, they won't believe you when you tell them that. Nor should they. Nor should you stop at telling them. A little hand holding is in order. Do it.
I'm talking about the equivalent of an install fest on a personal level, going a step further than any install fest can easily do: Become someone's Linux guru.
It's easy, and no, you do not need to be a Linux expert in order to do it -- you are going to know enough to answer the questions until long after your protege is able to seek out answers on his or her own.
All you need to do is provide some Linux CDs (and, by virtue of the licensing, the Linux CDs you currently have will work just fine, and are a great improvement on the last version of whatever distro you run -- Linux's ease of use is advancing by leaps and bounds), a few hours, and some patience.
If you're a really nice guy, you could actually buy the boxed set for your friend -- they don't cost much, and the documentation (at least in SuSE, which is the distribution I'd recommend) is well worth the price, especially in that this might be the one time when someone is motivated actually to read the docs.
Then set aside a time for your one-on-one install fest. There are some things you would be wise to consider. Available hard drive space is one. It's happy days if they have a complete system backup made that day, but they probably won't, and you must make certain that you do no harm -- you'll win no friends for Linux and possibly lose one for yourself, if you blow away the contents of their hard drive, as unworthy as you and I might think it is. So if you're not absolutely sure you know how to configure a dual-boot system, do a little studying ahead of time. Your friend will not want to see you scratching your head halfway through the process. Get familiar with the boot loader options, LILO (for LInux LOader) and GRUB (for pus-bloated dirt-dwelling beetle larva). On the big day itself, take a look at the victim machine's CMOS settings for evidence of anything that is likely to interfere with a successful outcome, paying special attention to the hard drive settings. LILO requires the "linear" parameter more often than you would think (while GRUB requires young, tender, and expensive garden plants). If you are very perceptive, you may have gotten an inkling as to which boot loader I favor, but people I greatly respect use the other one, so it's up to you -- just remember, you're here to help someone, not to conduct experiments on their machine. Boot the machine into Windows and get the information you're sure to need -- IP addresses, phone numbers if it's a dialup, and so on. Write it down, and gently inform your friend that this is information that should be kept safely and conveniently on paper someplace.
Then watch as your friend does the installation. He or she should be the only person touching the keyboard and mouse. You are now an advisor only. Be patient -- if you're in a hurry, or if your friend is, reschedule. Take a little while at each install screen to explain what's going on here. A whole lot about the way Linux works, and its differences from that to which the user is accustomed, can be taught here. This isn't a speed test, and there are no points for being first to hit the "next" button. You may need to explain this, too, to your friend.
There are a few places where some discussion will be necessary. One is in the choice of file system. The new journaling file systems are great (though I have tremendous admiration for the work of Hans Reiser, circumstances have dictated that my sole experience with them involves ext3 on the Red Hat 7.2 betas), but if all you know is ext2, stick to it. Here's why: It works; your friend has had to run chkdsk on his Windows installation often enough to know that it might be a necessary evil to check the disk in the event of an improper shutdown; and you are going to be this person's Linux guru, so you need to have answers better than "beats me" if something goes awry.
Another is in the choice of which packages to install. If there's sufficient drive space, "Install Everything" is a good choice, even if you feel confident that your friend will never actually use the documentation in Sanskrit. It otherwise can be a little thornier, chiefly because the packagers of distributions (who perhaps have been sneaking sips of Steve Ballmer's free soft drinks) have broken much that is useful off into "-devel" packages that never seem to get installed unless you choose everything. In that one measure of your success will be when your user actually downloads and compiles some nifty new thing from source, those packages ought to be aboard.
Other than that, your friend -- and you, if you watch the process through your friend's eyes -- will be amazed at how simply installation and configuration of Linux has become. Even configuring XFree86 has become so painless as to no longer be an event.
Through some spark of wisdom, Linux distributions no longer turn on all imaginable servers by default. There will be a screen during which your friend will decide which ones to enable. This is a good time for a little discussion of computer security and the vulnerabilities that are introduced with each additional server. You needn't be an expert here, either -- merely pointing out that an unneeded server that's running eats up memory and processor cycles and creates another place for crackers to enter is enough, along with assurance that they can still browse the web without httpd, and can still download files without being an ftp server. I turn off everything, and if it causes trouble it hasn't been evident trouble. As a print server, I see no reason not to choose CUPS, because it's easy to administer.
That security discussion should extend to the inevitable questions about passwords. You can point out that this keeps private files private, but more than that informs the machine who is using it, so that on a computer that is used by several family members, each may choose all kinds of customizations without imposing them on others. (And if there are kids in the house, it is good to point out that the root user can pretty easily get a sense of what they've been up to.)
I'm of two minds about the default runlevel. Just about every distribution defaults to the GUI boot (runlevel 5 in most distributions), but this introduces some potential problems, particularly if anything happens to XF86Config. It's easier for the newbie (actually, it isn't, but they think it is), yet I tend toward favoring runlevel 3, the text-based login. This lets the user get a sense of all the things that happen during bootup (you might want to go over /var/log/messages with your friend; it not only details these processes but gives a hint of the many and varied people and organizations that have contributed, and provides an opportunity to explain cron jobs, which can otherwise be pretty hard to grasp). It also lets the user, at bootup, experience a little bit of awe in that what they have here is not just some appliance but a device more complex than everything else they own put together, their car included. We can all profit from remembering that from time to time. (I had a delightful email exchange some weeks ago with Waldo Bastian of KDE in which we laughingly agreed that any sane person, given an explanation of the theories that govern computing, would conclude that the whole business is entirely impossible. Waldo is, in addition to being a great programmer, excellent administrator, and generally fine fellow, a very funny guy.)
These decisions will all be made, and if you've sorted out the CMOS settings such that at boot you get past "LI", your friend will soon be looking at a modern Linux desktop. (I've avoided suggesting which desktop you should advise your friend to choose. The answer is: The one you know, unless you use something that truly does require a lot of old-school Linux knowledge. This means, frankly, Gnome or KDE. I prefer KDE, but others find merit in Gnome. Choose the one you know, because you'll be answering questions about it. And in any case, don't preach -- if your friend later decides on something else, don't pre-equip him or her with a guilt trip.)
If your friend has some kind of broadband connection, now is the time to employ the update programs that modern Linux distributions provide. I have not used the Red Hat update program because I'm running a beta on the Lab Rat machine, but I have used SuSE's YOU feature in YaST. It should go without saying that you should tell your friend to regularly run the appropriate program, because it's a painless way of staying current with security fixes. It has other useful aspects, too -- if the desktop chosen is KDE, for instance, moving to KDE-2.2 and KOffice-1.1 are night-and-day improvements.
If your friend is on a dialup -- well, I don't quite know what to say. Certainly it is important to fetch the security updates. Upgrading something as big as a desktop, XFree86, or even Mozilla can take awhile, and is likely to get busted if there is an extension phone anywhere in the house.
Despite the connection, you have the opportunity to point out that practically everything in Linux is free for the download. While there are package managers, both in the auto-update programs of the distributions and included with desktops, this is a chance to explain opening terminal windows, su to root, and the RPM commandline. (If you're introducing your friend to Debian or Progeny, a.) my hat's off to you and, b.) you already know what to do; just be careful not to get over your friend's head.) You can also explain, in general terms for now, the idea of getting source tarballs and building the latest and greatest. Your friend will already be overloaded with information, so merely explaining that he or she will soon be able to do this is enough.
Then take a tour of the desktop. Both Gnome and KDE are designed to make the transition easy for anyone coming from any version of Windows released since August 1995.
A couple of things to avoid: Preaching the politics of free software. Even if you are a hard-core adherent, let your friend find it. (Why? Because a new operating system is quite enough for now -- having signed on to a movement can be, and often is, very offputting.) And -- highly important -- making decisions based on what would be just right for a machine you would use, instead of one your friend will use.
Congratulations! You're halfway there!