I've found that computers today are trying to be the every-machine. I'm big on customizing, and other operating systems and distributions still don't seem to give me the same level of choice and tweak ability as the first Linux distribution I ever used.
Slackware. In many circles, Slackware is synonymous with "hard to install", and "harder to maintain". While a steep learning curve is probably the largest drawback to Slackware, it has many strengths to offset that. Slackware systems are typically very high performance systems, allowing you to squeeze every ounce of power out of your hardware. This often also means new life for older hardware, most older machines are not really out of service, their obsolescence being forced by the requirements of just a basic operating system, but really just need something a little less power hungry to run. When going through the rigors of properly setting up the system to do what you want it to do, you may also gain a deeper understanding of the machine in front of you and the internals of the system used to interface with it. Just like Slackware, this guide has a bit of a learning curve, too. Read through it and make sure you're able to do some of these things before actually attempting to complete this project. If you don't already know how, please spend a few hours learning how to
build the Linux kernel from source the link is to an excellent howto on
Digital Hermit. It's not terribly difficult but does require some reading.
With these things in mind, we'll continue with the Slackware setup into a desktop machine. Throughout any of my guides, I'll be linking to a variety of external documentation sources that will be useful when following the instructions that I set out. Remember to begin at slackware.com to fetch things like ISO images of the slackware CDs and updated packages that will come later. In fact, bookmark that page, you'll probably be back a few times.
So, for this install I'm going to assume a fresh machine and guide along from turning on the computer to having it usable. The machine I'll be performing the tasks on is a Pentium 4 H/T with 1 GB of RAM and a 250GB Hard Drive, on board sound, video and lan. All of these things and more will be properly configured throughout this guide.
After you've fired up the machine, the first two Slackware discs are all you need to install the system, the first of the two being a bootable install cd. Let the CD fire up and answer a couple of questions about your keyboard layout, login as root and there it is: the cold, hard prompt. There are instructions on your screen, but no fancy graphics or mouse or anything. For the next little while it's all keyboard input, so stretch your fingers. Use the cfdisk utility to edit the partition table of your drive. Consideration is required when editing your partition table, I choose a relatively simple setup for this machine, dividing the hard drive into 3 sections. One for swap space of 2048 MB, one for the root filesystem of ~30GB, and one for my /home area of ~210 GB. I know, this doesn't quite add up to 250GB, but that's the difference between the label on the hard drive and the actual size of the drive due to measurement standards. You don't have to split your drive up like this, just remember to create some swap space (approximately double your RAM is generally considered a good idea). Another configuration I could have gone with is swap of 1024 MB and just one other partition of ~239GB for the root filesystem and not bothered with creating the third partition. It's all about choice. The actual drive itself is represented usually by /dev/hdX where X is replaced by a lower case letter. /dev/hda would represent the primary master drive on the IDE chain, /dev/hdc would be the secondary master drive on the IDE chain. This is usually the command to run, assuming that your hard drive is on /dev/hda:
cfdisk /dev/hda
Once you've decided how to configure your drive, run the
setup command. Finally, a menu! Set up your keyboard if using something other than the default, and add your swap partition. Now we are deciding where the main file system will be on the hard drive. In the setup for my hard drive, I add /dev/hda2 as a my root (/) linux partition and /dev/hda3 as my /home folder. You can choose to check for bad blocks while formatting, I'm just going to wipe my drive clean. Choose your file system wisely, there are many choices for how precisely to store your data on the drive itself, Slackware presenting three of them to you at this point in time. The standard ext2 is trustworthy and pretty much foolproof, ext3 being a set of extensions to add journaling support. ReiserFS is supposed to beat ext3 in speed and other performance measures, ext3 being a long entrenched standard has much better support and reconstruction capabilities. For the sake of stability I'll recommend ext3 with inodes at every 4096 bytes, many users will disagree with me and be totally confident in ReiserFS.
Many of these packages are optional, and all of these options are presented at this stage. For a very basic system, install only the A, AP, D, K, L, and N packages. This would be acceptable for a strict server or router, that has no intent of being really user friendly. It would have no GUI, only the shell. I want to create a desktop system, so I'm going to go with installing most of the packages that are included. Certain packages that I don't need, related to tape drives and other hardware that I don't have, are left out. Investigate what you may or may not want to include on your system, but I would say you should install everything in the D and L package series at the very least. My choice for this desktop is to install most if not all of A, AP, D,F, L, K, N, T, TCL, X, and XAP. One thing I'll note is that when I install the XAP packages, I don't install Firefox, Seamonkey or Thunderbird -- and I skip KDE! Some of the packages in Slackware 11 are now a little bit behind the times. Fortunately the Slackware developers team is hard at work creating new packages for their next release, all of which are in slackware-current/. We'll be upgrading the system later.
Now for the initial configuration. I usually choose the default installed kernel, which is suitable for desktop machines. Making a boot disk and installing your modem are optional, but having the boot disk handy for recovery purposes can be very useful. I enable the hotplug system at boot, and in part two I'll cover creating some custom udev rules for the devices I use most often. Lilo is the tool used by Slackware to first boot the computer, if you are not dual booting and have no special boot instructions for the computer it's safe to use the simple install. In another post I will more detailed instructions for the expert install. I always forgo the frame buffer console to begin with, it can be added later if you so desire, because I want to make sure the system fires up properly in simple console mode before making any changes. Where to install LILO? Well, the superblock of the root partition is a very safe choice, but I've always gone with the master boot record and never had a problem.
The standard for mice is, by and large, ps2 or imps2 and GPM is a great command line utility, drag over some text to copy, click the middle button (or if you have no middle button, try both buttons at the same time) to paste it. Configuring your network can be a little more tricky. It asks about a hostname, assuming you're on your own private network. These values will be used internally by the Linux networking stack, but if you're on a home broadband connection your ISPs settings will override them on the internet. For our purposes, this will function only as the machine's name. Unless you have specific IP requirements, set the machine to use DHCP and it will try to automatically configure itself on startup. DHCP has a rather long timeout period, so if you don't have the computer plugged in to a network with a DHCP server, or the detection of your network card fails, you may want to go get a cup of tea or coffee while you wait for the computer not to find an IP address.
Take care in deciding what services to run at startup. For the time being you can disable the Sendmail and SSHD servers unless you plan to use them right away. When discussing networking options later on, I'll explain simple configuration for these and show you how to make them active on starting up the machine. The BSD Inet daemon is reasonably safe to activate as well, adding some basic networked services to your machine. When discussing networking configuration, I'll also explain how this daemon works and what to disable. Move on to setting your font (if you want one, I usually don't) and your time zone configuration. For now, we'll select xfce as our window manager and when we install KDE, we'll switch this.
The next part is very important. Setting a strong root password is crucial for entire system security. If one of your user accounts is compromised by a hacker, you'll want to make sure that it's not easy to guess or trivial to crack the root password. Use letters, numbers, special keys, and try to make the password more than 8 characters long. As an example, the word password as a strong password would be more like Pa55%w0Rd. This password would not be difficult to remember, but would be difficult to crack.
There we go! Slackware installation is complete, when you reboot the machine you'll have a fully functioning base Slackware system. Login as root, and add a user for yourself using the adduser command. For the most part, the default values are alright, remember when it asks for additional groups to add yourself to
disk,cdrom,audio,video this will let you restrict access to these devices or services later on if you so decide. If you've installed sudo, then I would recommend using vi or nano to temporarily add the following line to the file /etc/sudoers
[your username] ALL=(ALL) ALL
This will allow your user access to make system wide changes without having to log in to the root account. Once you're done the setup, remove this line in case your user account is compromised in some way. Log out of the root account, log in as your fresh user and start using your freshly installed Slackware system.
Moving on, let's
upgrade to Slackware-current.