http://www.slackware.com/install/

 Installation Help
0.  Checking System Requirements
You need to make sure your computer meets the minimum requirements for running Linux.

1. Obtaining The Software Sets
Once you have decided to install Slackware, you will want to choose the software sets you want to install.

2. Selecting A Boot Disk
Slackware Linux comes with many precompiled boot disks to use during the installation process. You want to choose one that best fits your hardware.

3. Selecting A Root Disk
You need to have a diskette with a root filesystem and the setup program in order to install Slackware Linux. There are several to choose from.

4. Partitioning Your Hard Disk
Before running the setup program you need to define the Linux partition(s) on your hard disk.

5. The Setup Program
The last step is running the setup program and completing all the steps within it. The program is menu-driven and easy to understand.

REQUIAREMENT:
Slackware Linux doesn't require an extremely powerful system to run (though having one is quite nice :). It will run on systems as far back as the 486. Below is a list of minimum system requirements needed to install and run Slackware.

    * 486 processor
    * 16MB RAM (32MB suggested)
    * 100-500 megabytes of hard disk space for a minimal and around 3.5GB for full install
    * 3.5" floppy drive 

Additional hardware may be needed if you want to run the X Window System at a usable speed or if you want network capabilities. 

SOFTWARE:
Slackware Linux was first released before CD-ROMs became a standard in systems and before fast Internet connections were cheap. Because of this, the distribution was broken down into software sets. Each set contains a different group of programs. This allowed for someone to get the Slackware Linux distribution quickly. For example, if you know you don't want the X Window System, just skip all of the X software set.
A	- 	The base system. Contains enough software to get up and running and have a text editor and basic communications programs.
AP	- 	Various applications that do not require the X Window System.
D	- 	Program development tools. Compilers, debuggers, interpreters, and man pages. It's all here.
E	- 	GNU Emacs. Yes, Emacs is so big it requires its own series.
F	- 	FAQs, HOWTOs, and other miscellaneous documentation.
GNOME	- 	The GNOME desktop environment.
K	- 	The source code for the Linux kernel.
KDE	- 	The K Desktop Environment. An X environment which shares a lot of look-and-feel features with the MacOS and Windows. The Qt widget library is also in this series, as KDE requires it to function.
KDEI	- 	Language support for the K Desktop Environment.
L	- 	System libraries.
N	- 	Networking programs. Daemons, mail programs, telnet, news readers, and so on.
T	- 	teTeX document formatting system.
TCL	- 	The Tool Command Language, Tk, TclX, and TkDesk.
X	- 	The base X Window System.
XAP	- 	X applications that are not part of a major desktop environment. For example Ghostscript and Netscape.
Y	- 	Games (the BSD games collection, Sasteroids, Koules, and Lizards).

BOOTDISK:
In order to install Slackware Linux you must boot a small version of it from diskette. The first diskette holds the Linux kernel and the other diskette holds the root filesystem. Slackware Linux comes with several boot disk images from which you can choose one. The table below describes the differences between the images.

Creating The Boot Disk

Once you have selected a boot disk image file from the list below, you will need to create the disk. If you are creating the image from a Linux system, the following command should work just fine:

    dd if=[image file name] of=/dev/fd0

You may need to change /dev/fd0 depending on your configuration. If you are creating the image from a DOS system, the included program RAWRITE will help you make the disk. Here is the syntax for RAWRITE:

    C:\>RAWRITE [image file name] [destination drive letter]: 

For example, if I wanted to make a boot disk from the net.i image on a DOS system with the floppy drive as A:, I would use the following command.

    C:\>RAWRITE bare.i a:

You should now have a working boot disk to use during the Slackware Linux installation.

The Image Files
IDE bootdisks (.i suffix)

bare.i 	This is the disk to use for installation on most IDE based PCs, with support for nearly all IDE controllers and support for IDE/ATAPI CD-ROM/DVD drives. Most CD-ROM drives made today fall into this category.
bareacpi.i 	This is similar to the bare.i bootdisk, but the kernel also contains support for ACPI (Advanced Configuration and Power Interface). If you aren't using a laptop, then you probably will not need ACPI (or APM) support.
ataraid.i 	This is a bootdisk with support for IDE RAID controllers. The install disks now have preliminary support for these controllers as well. The drivers included are: 3ware Hardware ATA-RAID controllers. Promise Fasttrak(tm) IDE RAID. Highpoint 370 software RAID. Many of these controllers will require some degree of do-it-yourself setup before and/or after installation.
lowmem.i 	This is a really stripped-down Linux kernel which might be useful for installing on IDE systems with a low amount of RAM (less than 8MB). It's also the only Slackware kernel that supports old 386 machines. If bare.i runs into problems, you might try this. NOTE: On systems with extremely low memory (4MB), ZipSlack plus the fourmeg.zip add-on (found in the zipslack directory) may boot and run even in cases where lowmem.i doesn't. If you have to use lowmem.i to install, you'll then probably have to compile a custom kernel with the minimal additional features that your machine requires.
old_cd.i 	This is a version of bare.i with additional support for old CD-ROM drives on non-standard proprietary interfaces. The CD-ROM drives supported by this bootdisk are: Aztech CDA268-01A, Orchid CD-3110, Okano/Wearnes CDD110, Conrad TXC, CyCDROM CR520, CR540. Sony CDU31/33a CD-ROM. Sony CDU531/535 CD-ROM. Philips/LMS cm206 CD-ROM with cm260 adapter card. Goldstar R420 CD-ROM (sometimes sold in a 'Reveal Multimedia Kit'). ISP16/MAD16/Mozart CD-ROM drives. NON-IDE Mitsumi CD-ROM support. Optics Storage 8000 AT CD-ROM (the 'DOLPHIN' drive). Sanyo CDR-H94A CD-ROM support. Matsushita, Kotobuki, Panasonic, CreativeLabs (Sound Blaster), Longshine and Teac NON-IDE CD-ROM support.
pportide.i 	This is an extended version of bare.i with support for a wide variety of parallel-port IDE devices. Supports parallel-port products from MicroSolutions, Hewlett-Packard, SyQuest, Imation, Avatar, and other manufacturers.
sata.i 	This is a version of bare.i with support for SATA controllers made by Promise, Silicon Image, SiS, ServerWorks / Apple K2, VIA, and Vitesse.
SCSI bootdisks (.s suffix)

adaptec.s 	This bootdisk supports most Adaptec SCSI controllers, including these models: AHA-1510, AHA-1520, AHA-1522, AHA-1522, AHA-1740, and AHA-2825. The AIC7xxx models, which include the 274x EISA cards; 284x VLB cards; 2902, 2910, 293x, 294x, 394x, 3985 and several other PCI and motherboard based SCSI controllers from Adaptec. Adaptec's I2O based RAID controllers (including OEM Adaptec RAID controllers used by HP and Dell, Adaptec branded AAC964/5400 RAID controllers, and DPT SmartRaid V cards)
ibmmca.s 	This is a bootdisk based on a development kernel which supports MicroChannel Architecture, found in some IBM PS/2 machines and laptops. It is a bus system similar to PCI or ISA. Support for most MCA SCSI, Ethernet, and Token Ring adapters is included.
jfs.s 	A version of bare.i with support for IBM's Journaled Filesystem as well as Adaptec AIC7xxx SCSI support.
raid.s 	This is a bootdisk with support for some hardware SCSI and ATA RAID controllers. The install disks now have preliminary support for these controllers as well. The drivers included are: AMI MegaRAID 418, 428, 438, 466, 762, 490 and 467 SCSI host adapters, Compaq Smart, Compaq Smart Array 5xxx, IBM ServeRAID hardware RAID, LSI Logic Fusion(TM) MPT devices (not really RAID, but added since there was room for this driver here), Mylex DAC960, AcceleRAID, and eXtremeRAID controllers. Many of these controllers will require some degree of do-it-yourself setup before and/or after installation.
scsi.s 	This is a SCSI bootdisk with support for various controllers. Note that this disk does not include Adaptec support any longer -- you must use the adaptec.s bootdisk for that. This disk supports these SCSI controllers: AM53/79C974 PCI SCSI, BusLogic SCSI, EATA ISA/EISA/PCI (DPT and generic EATA/DMA-compliant boards), Initio 91XXU(W) and Initio 91XXU(W), SYM53C8XX Version 2, Qlogic ISP SCSI, Qlogic QLA 1280 SCSI.
scsi2.s 	This is a SCSI bootdisk with support for various controllers. This disk supports these SCSI controllers: AdvanSys SCSI (supports all AdvanSys SCSI controllers, including some SCSI cards included with HP CD-R/RW drives, the Iomega Jaz Jet SCSI controller, and the SCSI controller on the Iomega Buz multimedia adapter), ACARD 870U/W SCSI host adapter, Compaq Fibre Channel 64-bit/66Mhz HBA, Domex DMX3191D SCSI Host Adapters, DTC 3180/3280 SCSI Host Adapters, Future Domain 16xx SCSI/AHA-2920A, NCR53c7, 8xx, NCR53C8XX
scsi3.s 	This is a SCSI bootdisk with support for various controllers. This disk supports these SCSI controllers: Western Digital 7000FASST SCSI support, Always IN2000, Intel/ICP (former GDT SCSI Disk Array) RAID Controller, PCI2000I, PCI2220i, PSI240i EIDE interface card, Qlogic FAS SCSI, QLogic ISP FC (ISP2100 SCSI-FCP), Seagate ST01/ST02, Future Domain TMC-885/950 SCSI, SYM53c416 SCSI host adapter, UltraStor 14F, 24F and 34F SCSI-2 host adapters, Workbit NinjaSCSI-32Bi/UDE
speakup.s 	This is like the bare.i (standard IDE) disk, but has support for Speakup (and since there was space, support for Adaptec's AIC7xxx SCSI controllers is also included) Speakup provides access to Linux for the visually impaired community. It does this by sending console output to a number of different hardware speech synthesizers. It provides access to Linux by making screen review functions available. For more information about speakup and its drivers check out: http://www.linux-speakup.org. To use this, you'll need to specify one of the supported synthesizers on the bootdisk's boot prompt:
ramdisk speakup_synth=synth
where 'synth' is one of the supported speech synthesizers: acntpc, acntsa, apolo, audptr, bns, decext, dectlk, dtlk, ltlk, spkout, txprt
xfs.s 	This is an extended version of bare.i with support for SGI's XFS filesystem. Support for Adaptec's AIC7xxx SCSI controllers is also included.

ROOTDISK:
The root disk is the second diskette needed to install Slackware Linux. This disk holds the setup program and all of the necessary utilities to get Slackware up and running on your system. You create the root disk in the same manner as the boot disk. That is, pick an image and dump it to a floppy. The list below explains the different root disk images available.

Root Disks

install.1, install.2 	These are the Slackware installation disks, used to install Slackware Linux to its own partition. To load the installer from floppy disk, you'll need to write each to these to a floppy disk, and use a bootdisk to load them. NOTE: The 'dialog' program used by the install system is not forgiving of extra keystrokes entered between screens, so type carefully. :-)
install.zip 	This is an *EXPERIMENTAL* UMSDOS-based Slackware installer.
It is a UMSDOS version of the Slackware installer rootdisks.

Supplemental Disks

network.dsk 	This supplemental disk provides support for ethernet cards. To use this disk to scan for network devices (this is only done if you need to use them DURING the installation), you enter 'network' after loading the 'install' disks and logging in.
pcmcia.dsk 	This supplemental disk provides support for laptop devices. It allows installing through a network or CD-ROM drive card. To use this disk to scan for PCMCIA devices (this is only done if you need to use them DURING the installation), you enter 'pcmcia' after loading the 'install' disks and logging in.
rescue.dsk 	This is a BusyBox-based rescue disk for Linux. It is a reasonably complete mini-Linux system running from a four megabyte ramdisk, and contains an editor (vi), networking tools like ifconfig, route, telnet, ping, and wget, and other tools that might be handy for fixing your Linux machine if you ever get locked out for some reason, or any time you just need to boot Linux to "edit something quickly".
sbootmgr.dsk 	This nifty little tool allows selecting various devices to boot from a menu, and even allows booting a CD-ROM in machines where the BIOS doesn't support it (or it's supposed to support it, but it just doesn't work). If you have trouble booting the Slackware CD-ROM, you might try writing this image to a floppy, booting it, and then selecting your CD-ROM drive as the boot device.

The SBM installer is available as a Slackware package (called "btmgr") in the extra/ packages collection.

PARTITION:
After you boot off the diskettes you will be presented with a login prompt. You must login as root (the password is NULL). Now you can setup the hard disk and install Slackware.

You have to run the standard Linux fdisk program to setup your partitions. At first glance it looks a little scary, but it's really quite simple.
Starting fdisk

When you start fdisk you need to specify the device to use. By default it will try to open /dev/hda, but in some cases this is not the correct device to use. Just specify the device name after typing fdisk on the command line. For example:

    fdisk /dev/hdb

This will tell fdisk to open the primary slave IDE hard disk. Notice that you do not specify a partition number on the device name.

An alternative to fdisk is cfdisk, which provides a menu-based setup program for the partition setup (DOS users comfortable with DOS's fdisk may find this program easier). Just run cfdisk at the prompt instead of fdisk.
fdisk Commands

Here are some key commands you should be familiar with when using fdisk.
p 	Display the current partition table.
m 	Display the help screen.
d 	Delete a partition.
n 	Add a new partition.
t 	Change the partition's system ID.
q 	Quit fdisk without saving changes.
w 	Write changes to device and quit fdisk.
Unwritten "Rules"

So what kind of partitions should you make? It is always a good idea to make the swap partition first so you specify an exact size for it. It is also a good idea to make seperate partitions for /, /home, and /usr. People will tell you many things about how to divide up your disk, but it really comes down to what you want. There are many good reasons to breaking it up into /, /home, and /usr. For example:

    * Home directories are always on their own partition and you can upgrade the distribution without having to backup the home directories.
    * /usr is where software goes, so you can keep that whenever you upgrade distributions.
    * The root directory should really remain untouched, except for the modified files in /etc and root's home directory. 

Others may tell you that you must have a seperate /var partition so log files won't fill up the root filesystem or so that the mail spool gets its own partition. Really, the choice is yours. Experiment with it, you can always change it later. 

SETUP:
The Slackware Linux installation program is a text-based, menu-driven program that's easy to use. After you have defined your partitions, exit fdisk and start the setup program by typing setup at the prompt.

    # setup

The setup program is quite easy to use and provides help throughout. Here's an explanation of what the various main menu options do.
HELP
Displays the Slackware Setup HELP file. This option is recommended for new users and even experienced users. It offers the latest information about the Slackware Linux distribution.
KEYMAP
Allows you to remap your keyboard if you need to.
ADDSWAP
Setup your swap partition(s).
TARGET
Selects the target directory. Most of the time this is /, but sometimes it is something else. This option scans for partitions and allows you to format them as well.
SOURCE
Selects the source media for the Slackware Linux distribution. You can install from another hard disk partition, floppy disks, an NFS mount, a pre-mounted directory, or from CD-ROM.
SELECT
This is where you pick which series you want to install. A checklist is displayed with a description for each series. You check the series that you want to install.
INSTALL
Installs the selected series to the target directory. You are given several prompting options. Each is geared towards different levels of experience. Below is a listing of the different prompting options.

full 	Install everything (up to 3.5GB of software)
newbie 	Use verbose prompting (and follow tagfiles)
menu 	Choose groups of packages from interactive menus
expert 	Choose individual packages from interactive menus
custom 	Use custom tagfiles in the package directories
tagpath 	Use tagfiles in the package directories

An option is also given to display the prompt mode help file, which may not be a bad idea if you don't understand the prompting modes.
CONFIGURE
This option takes you through the most important of the configuration process. That is, the root password, LILO configuration, network configuration (using netconfig), kernel installation, X setup, timezone, and a few other settings. You may want to take a look at the Configuration Page for some additional help.
PKGTOOL
Runs the Slackware Pkgtool program for managing packages. This is explained in more detail on the Package Management Page.
EXIT
Exits the setup program.
After installing Slackware Linux and exiting the setup program, you can issue the shutdown -r now command to reboot your new Slackware system. Don't forget to remove the diskette from the drive though.

 Configuration Help:
Directory  	 		What's in it?
/bin 	Basic user-related programs are here. Command shells and programs such as ls.
/boot 	LILO boot-related files
/dev 	Block and character device files.
/etc 	Configuration and system initialization files.
/home 	User home directories, except root.
/lib 	Essential libraries (like the system C library and kernel modules).
/mnt 	Generic mountpoint for fixing filesystems.
/opt 	Optional software packages. Slackware installs KDE to this location.
/proc 	Proc filesystem mountpoint for kernel interaction.
/root 	Root's home directory.
/sbin 	System binaries. Programs run by root or at boot time.
/tmp 	Temporary directory. Everyone has read+write permissions here.
/usr 	User-related programs such as X11, netscape, and pine.
/var 	System log files, lock files, mail spools, and printer spools.

In addition to these basic directories, there may be some others. For example, you may have a /mnt/cdrom directory for mounting your CD-ROM drive or /mnt/floppy for mounting a floppy diskette.

netconfig

The preferred way of setting up your network connection is through the use of the netconfig program. Run this as root and you will be presented with a series of questions to answer. The program will then edit the rc.inet1.conf file.

You will also need kernel support for your network card. The netconfig program can probe your system for a network card and enable it. Or you can edit /etc/rc.d/rc.modules and select your card.

You can, of course, edit the network configuration files by hand. They are /etc/rc.d/rc.inet1.conf and /etc/rc.d/rc.inet2, which are discussed in greater detail below.
DHCP support

Starting with Slackware 7.0, the netconfig program will ask if you want to use DHCP for your network setup. Or you can edit rc.inet1.conf to run /sbin/dhcpd for you. Be sure that you have kernel support for your network card enabled (netconfig can do this for you).
rc.inet1

rc.inet1's role is simple: it configures your networking devices and sets up your routing. Essentially, rc.inet1 is the file that gives you a network in the first place, reading config options from its config file: rc.inet1.conf.

This configuration file is pretty simple, it supports up to 3 different networking devices. For each device there's a section like the following:

# Config information for eth0:
IPADDR[0]=""
NETMASK[0]=""
USE_DHCP[0]=""
DHCP_HOSTNAME[0]=""

Your IP address (IPADDR) you can get from your network administrator. The netmask is almost always going to be 255.255.255.0, unless your machine is at the top of the subnet (in which case you probably don't need this page). USE_DHCP and DHCP_HOSTNAME are used if you lease an IP address from a DHCP server.

At the bottom of rc.inet1.conf you'll find:

# Default gateway IP address:
GATEWAY=""

# Change this to "yes" for debugging output to stdout. Unfortunately,
# /sbin/hotplug seems to disable stdout so you'll only see debugging output
# when rc.inet1 is called directly.
DEBUG_ETH_UP="no"

GATEWAY is usually going to be the first machine on your subnet (though it may not be... ask your network admin.). DEBUG_ETH_UP can be used for debugging purposes.
rc.inet2

rc.inet1 gives you a network; rc.inet2 finishes the job of network configuration by running stuff on that network. Any services or daemons that use the network should be started from this file. Most of the rc scripts in charge of starting daemons like inetd, sshd, bind, nfs, etc get called from rc.inet2.

Other daemons (httpd, mysql, samba, etc) get called by init scripts run from rc.M, so that's where you may want to look at, if you need to disable them (or see how it works ;-)

PPP

Most people connect to the Internet through some kind of dialup connection. The common one is PPP, though SLIP is still occasionally used. Setting up your system to speak PPP to a remote server is pretty easy. We've included a few tools to help you in setting it up.

pppsetup

In Slackware we have included a program called pppsetup to configure your system to use your dialup account. It shares a look and feel similar to our netconfig program.

To run the program, make sure you are logged in as root. Then type pppsetup to run it. You should see a screen like this:

Screenshot of pppsetup

The program will present a series of questions, to which you will feed it appropriate answers. Things like your modem device, the modem initialization string, and the ISP phone number. Some items will have a default, which you can accept in most cases.

After the program runs, it will create a ppp-go program and a ppp-off program. These are used to start and stop, respectively, the PPP connection. The two programs are located in /usr/sbin and need root priviledges to run.
/etc/ppp

For most users, running pppsetup will be sufficient. However, there may be an instance where you want to tweak some of the values used by the PPP daemon.

All of the configuration information is kept in /etc/ppp. Here is a list of what the different files are for:

ip-down 	This script is run by pppd after the PPP connection is ended.
ip-up 	This script is run by pppd when there's a successful ppp connection. Put any commands you want run after a successful connection in this file.
options 	General configuration options for pppd.
options.demand 	General configuration options for pppd when run in demand dialing mode.
pppscript 	The commands sent to the modem.
pppsetup.txt 	A log of what you entered when you ran pppsetup.

NOTE: Most of these files won't be there until after you run pppsetup. 

X Window System

Starting with Slackware-10.0, the X Window environment in Slackware is provided by Xorg. X is responsible for providing a graphical user interface. It is independent from the operating system, unlike Windows or the MacOS.

The X Window System is implemented through many programs that run in userland. The two main components are the server and the window manager. The server provides the lowlevel functions for interacting with your video hardware, thus it is system specific. The window manager sits on top of the server and provides the user interface. The advantage to this is you can have many different graphical interfaces by simply changing the window manager you use.
Configuring the X Server

Configuring X can be a complex task. The reason for this is the vast numbers of video cards available for the PC architecture, most of which use different programming interfaces. Luckily, most cards today support basic video standards known as VESA, and if your card is among them you'll be able to start X using the "startx" command right out of the box.

If this doesn't work with your card, or if you'd like to take advantage of the high-performance features of your video card such as hardware acceleration or 3-D hardware rendering, then you'll need to reconfigure X.

To configure X, you'll need to make an /etc/X11/xorg.conf file. This file contains lots of details about your video hardware, mouse, and monitor. It's a very complex configuration file, but fortunately there are several programs to help create one for you. We'll mention a few of them here.
xorgsetup

This is a simple menu driven frontend that's similar in feel to the Slackware installer. It simply tells the X server to take a look at the card, and then set up the best initial configuration file it can make based on the information it gathers. The generated /etc/X11/xorg.conf file should be a good starting point for most systems (and should work without modification).
xorgconfig

This is a text-based X configuration program that's designed for the advanced system administrator. Here's a sample walkthrough using xorgconfig. First, start the program:

# xorgconfig

This will present a screenful of information about xorgconfig. To continue, press enter. xorgconfig will ask you to verify you have set your PATH correctly. It should be fine, so go ahead and hit enter.

Next, select your mouse from the menu presented. If you don't see your serial mouse listed, pick the Microsoft protocol -- it's the most common and will probably work. Next xorgconfig will ask you about using ChordMiddle and Emulate3Buttons. You'll see these options described in detail on the screen. Use them if the middle button on your mouse doesn't work under X, or if your mouse only has two buttons (Emulate3Buttons lets you simulate the middle button by pressing both buttons simultaneously). Then, enter the name of your mouse device. The default choice, /dev/mouse, should work since the link was configured during Slackware setup. If you're running GPM (the Linux mouse server) in repeater mode, you can set your mouse type to /dev/gpmdata to have X get information about the mouse through gpm. In some cases (with busmice especially) this can work better, but most users shouldn't do this.

xorgconfig will ask you about enabling special key bindings. If you need this say "y". Most users can say "n" -- enter this if you're not sure.

In the next section you enter the sync range for your monitor. To start configuring your monitor, press enter. You will see a list of monitor types -- choose one of them. Be careful not to exceed the specifications of your monitor. Doing so could damage your hardware. Specify the vertical sync range for your monitor (you should find this in the manual for the monitor). xorgconfig will ask you to enter strings to identify the monitor type in the xorg.conf file. Enter anything you like on these 3 lines (including nothing at all).

Now you have the opportunity to look at the database of video card types. You'll want to do this, so say "y", and select a card from the list shown. If you don't see your exact card, try selecting one that uses the same chipset and it will probably work fine. Then choose an X server. You should have installed the server recommended for your card, but if not, you can always go back and install that later. Choose option (5) to use the X server recommended for your video card's chipset.

Next, tell xorgconfig how much RAM you have on your video card. xorgconfig will want you to enter some more descriptive text about your video card. If you like, you can enter descriptions on these three lines.

You'll be asked next about your RAMDAC and clock generator settings. You may enter them if you know the values, but the X server will probably successfully probe for these values. The next option is to run X -probeonly to find the clock settings for the card. You can try this, and if it works it will speed up X's startup time. If it fails, it's not usually a big problem. If it causes problems with your card, don't use it.

You'll then be asked which display resolutions you want to use. Again, going with the provided defaults should be fine to start with. Later on, you can edit the /etc/X11/xorg.conf file and rearrange the modes so 1024x768 (or whatever mode you like) is the default.

At this point, the xorgconfig program will ask if you'd like to save the current configuration file. Answer yes, and the X configuration file is saved, completing the setup process. You can start X now with the 'startx' command.

Picking a Window Manager

The last thing to do to setup your graphical environment is to select a window manager. There are dozens available, and we include a handful of them with Slackware. Run the xwmconfig program to set the default window manager for your system. This program will present a list of installed window managers and let you pick one.

Screenshot of xwmconfig

Desktop environments can also be grouped into this category, as they are most closely related to a window manager. KDE and GNOME are examples of desktop environments, having a standard set of programs that look and act the same.

 Slackware Linux is setup to use shadow passwords, so in addition to the standard /etc/passwd and /etc/group files, there is also an /etc/shadow file. Below is a list of files and programs you should be familiar with in order to successfully manage your users.
Adding a User

Slackware Linux makes adding a new user easy. All you have to do is run the /usr/sbin/adduser script. It will present you with a series of questions and then it will complete all of the necessary steps to get the account working.

After the account is setup, you can use the following programs to manage the account:

    * /usr/bin/passwd - Changes the password.
    * /usr/bin/chfn - Changes the finger information.
    * /usr/bin/chsh - Changes the user's login shell. 

Removing a User

Removing a user is as simple as adding it; to do so you can either use the userdel command, or do it by hand.

userdel can't remove an account if the user is currently logged in; so you must kill any running processes which belong to the user you are deleting.
Also, you have to run userdel -r (notice the -r flag) if you want to get rid of the home dir and mail spool of the user as well.

Removing a user manually requires editing a few files and removing some things, but it's really quite simple. These steps a necessary to remove a user from the system:

   1. Remove the line in /etc/passwd. As root open the file /etc/passwd and find the line corresponding to the account you are removing and delete it.
   2. Remove the user name from /etc/group. You need to remove the username from any groups in the /etc/group file.
   3. Remove the line in /etc/shadow. Same process as in step 1.
   4. Delete the home directory. As root do an rm -rf on the home directory for the account.
   5. Delete the mail spool file. As root you need to delete /var/spool/mail/{USERNAME}. 

Disabling a User

Disabling an account is easy and sometimes preferrable in certain situations. From the passwd(1) man page: 

Slackware Linux uses the BSD-style file layout for its system initialization files. These files are organized and easy to edit. All of the system initialization files are stored in the /etc/rc.d directory. To prevent a script from executing at startup you can remove the execute permission on the file and Slackware will not execute it. The following is a general description of what the different files do.
System Startup

The first program to run under Slackware besides the Linux kernel is init. This program reads /etc/inittab file to see how to run the system. It runs the /etc/rc.d/rc.S script to prepare the system before going into your desired runlevel. The rc.S file enables your virtual memory, mounts your filesystems, cleans up certain log directories, initializes Plug and Play devices, loads kernel modules, configures PCMCIA devices, sets up serial ports, and runs System V init scripts (if found). There are some scripts in /etc/rc.d that rc.S will call on to complete its work:

rc.S 	This is the actual system initialization script.
rc.acpid 	Starts the acpi daemon
rc.hotplug 	This script starts hotpluggable subsystems
rc.modules 	Loads kernel modules. Things like your network card, PPP support, and other things are loaded here. If this script finds rc.netdevice, it will run that as well.
rc.pcmcia 	Probes for and configures any PCMCIA devices that you might have on your system. This is most useful for laptop users, who probably have a PCMCIA modem or network card.
rc.serial 	Configures your serial ports by running the appropriate setserial commands.
rc.sysvinit 	Looks for System V init scripts for the desired runlevel and runs them. This is discussed more in detail below.
Runlevels

After system initialization is complete, init moves on to runlevel initialization. A runlevel describes the state that your machine will be running in. Sound redundant? Well, the runlevel tells init if you will be accepting multiuser logins or just a single user, whether or not you want network services, and if you will be using the X Window System or agetty to handle logins. The files below define the different runlevels in Slackware Linux.

rc.0 	Halt the system (runlevel 0). By default, this is symlinked to rc.6.
rc.4 	Multiuser startup (runlevel 4), but in X11 with KDM, GDM, or XDM as the login manager.
rc.6 	Reboot the system (runlevel 6).
rc.K 	Startup in single user mode (runlevel 1).
rc.M 	Multiuser mode (runlevel 2 and 3), but with the standard text-based login. This is the default runlevel in Slackware.
Network Initialization

Runlevels 2, 3, and 4 will startup the network services if you have that enabled. The following files are responsible for the network initialization:

rc.inetd 	Starts up inetd, the BSD Internet super-daemon.
rc.inet1 	This script is used to bring up the various network interfaces.
rc.inet1.conf 	Modified by netconfig, this file is responsible for configuring the actual network interfaces.
rc.ip_forward 	Activates IP packet forwarding.
rc.inet2 	Runs after rc.inet1 and starts up basic network services.
rc.wireless 	This script sets up PCI, USB, and 32-bit Cardbus wireless devices - NOT 16-bit PCMCIA cards (those are configured in /etc/pcmcia/).
rc.wireless.conf 	Wireless LAN adapter configuration.
rc.atalk 	Starts up AppleTalk services.
rc.bind 	Starts up the BIND name server (named).
rc.httpd 	Starts up the Apache web server.
rc.mysqld 	Starts up the MySQL server.
rc.news 	Starts up the news server.
rc.nfsd 	Starts up the NFS server.
rc.portmap 	Starts up the RPC portmapper.
rc.samba 	Starts up Windows file and print sharing services.
rc.sshd 	Starts up the secure shell server (sshd).
System V Compatibility

Since version 7.0, Slackware includes System V init compatibility. Many other Linux distributions make use of this style instead of the BSD style. Basically each runlevel is given a subdirectory for init scripts, whereas BSD style gives one init script to each runlevel.

The rc.sysvinit script will search for any System V init scripts you have in /etc/rc.d and run them, if the runlevel is appropriate. This is useful for certain commercial software packages that install System V init scripts and scripts for BSD style init.
Other Files

The scripts described below are the other system initialization scripts. They are typically run from one of the major scripts above, so all you need to do is edit the contents.

rc.cdrom 	If enabled, this script will scan for a CD-ROM in a drive and mount it under /cdrom if it finds one.
rc.gpm 	Starts up general purpose mouse services. Allows you to cut and paste at the Linux console.
rc.ibcs2 	Starts up the Intel Binary Compatibility support.
rc.font 	Loads the custom screen font for the console.
rc.local 	Contains any specific startup commands for your system. This is empty after a fresh install, as it is reserved for local administrators. This script is run after all other initialization has taken place.

Slackware's packaging system uses ordinary compressed tar files. The system allows you to keep track of the packages you install, making it easy to upgrade or remove them down the road.

Slackware provides an interactive program for managing your packages. You can use pkgtool to handle adding and removing packages from your system.

Screenshot of Pkgtool

You can also use these command line utilities to work with packages. Below is a brief overview of the commands, however, you should always consult the man pages before using them.
installpkg

By typing installpkg [packagename].tgz you can install packages on your system. There are a few command line options as well:

-warn 	Generates a report of what would happen if you installed the package and sends the report to standard out.
-m 	Make the contents of the current directory and subdirectories into a package with the name you specify.
-r 	Install the contents of the current directory and subdirectories as a package with the name you specify.
removepkg

In it's simplest form, removepkg will remove the package name you specify. The general syntax is removepkg packagename. There are a few command line options that you can specify:

-warn 	Generates a report of what would happen if you removed the package and sends the report to standard out. It does not remove the package.
-preserve 	This option will reconstruct the package subtree under /tmp/preserved_packages/packagename, where packagename is the name is you specify.
-copy 	Construct a copy of the package under /tmp/preserved_packages/packagename, but do not remove it (same effect as -warn -preserve).
-keep 	Save the temporary files created by removepkg. Useful for debugging purposes.
upgradepkg

Upgrades a currently installed package with the package specified. If the packages have the same name, then you only need to run upgradepkg packagename to perform the upgrade. If the new package has a different name than the currently installed package, you must use this syntax:

    upgradepkg oldpackagename%newpackagename 

Do not add any extra whitespace between pairs of old/new package names.
makepkg

Creates a new Slackware compatible package. The program uses the contents of the current directory to create the package. Be sure to take a look at the manpage for makepkg for information about the embedded scripts that you can put in a Slackware package.
explodepkg

Extracts the contents of a Slackware compatible package to the current directory. It does not execute the embedded scripts in the package. This utility is most useful for maintenance purposes (exploding a package, updating it, then rebuilding with makepkg).
rpm2targz

Converts an RPM (RedHat Package Manager) to a Slackware-compatible package. In case you ever run across the need to obtain something that is only in RPM format, this program may come in handy. The syntax is:

    rpm2targz [filename].rpm 

NOTE: Running rpm2targz will create a .tar.gz file, while running rpm2tgz will create a .tgz file. The files are exactly the same, the only difference is the extension format (some people prefer one over the other).