Debian GNU/Linux : Guide to Installation and Usage
Chapter 4
If you have no use for PCMCIA, you can choose to remove it at this point. This will make your startup cleaner; also, it will make it easier to replace your kernel (PCMCIA requires a lot of correlation between the version of the PCMCIA drivers, the kernel modules, and the kernel itself). In general, you will not need PCMCIA unless you’re using a laptop.
3.19 Select and Install Profiles
The system will now ask you if you want to use the pre-rolled software configurations offered by Debian. You can always choose package-by-package what you want to install on your new machine. This is the purpose of the dselect program, described below. But this can be a long task with the thousands of packages available in Debian!
So, you have the ability to choose _tasks_ or _profiles_ instead. A _task_ is work you will do with the machine, such as “Perl programming” or “HTML authoring” or “Chinese word processing.” You can choose several tasks. A _profile_ is a category your machine will be a member of, such as “Network server” or “Personal workstation.” Unlike with tasks, you can choose only one profile.
To summarize, if you are in a hurry, choose one profile. If you have more time, choose the Custom profile and select a set of tasks. If you have plenty of time and want very precise control on what is or is not installed, skip this step and use the full power of dselect.
Soon, you will enter into dselect. If you selected tasks or profiles, remember to skip the “Select” step of dselect, because the selections have already been made.
A word of warning about the size of the tasks as they are displayed: The size shown for each task is the sum of the sizes of its packages. If you choose two tasks that share some packages, the actual disk requirement will be less than the sum of the sizes for the two tasks.
Once you’ve added both logins (root and personal), you’ll be dropped into the dselect program. dselect allows you to select _packages_ to be installed on your system. If you have a CD-ROM or hard disk containing the additional Debian packages that you want to install on your system, or if you are connected to the Internet, this will be useful to you right away. Otherwise, you may want to quit dselect and start it later after you have transported the Debian package files to your system. You must be the superuser (root) when you run dselect. Information on how to use dselect is given in section 3.20.
3.20 Package Installation with dselect
It is now time to install the software packages of your choice on your Debian system. This is done using Debian’s package management tool, dselect.
3.20.1 Introduction
This section documents dselect for first-time users. It makes no attempt to explain everything, so when you first meet dselect, work through the help screens.
dselect is used to select which packages you wish to install (there are currently about 2,250 packages in Debian 2.1). It will be run for you during the installation. It is a very powerful and somewhat complex tool. As such, having some knowledge of it beforehand is highly recommended. Careless use of dselect can wreak havoc on your system.
dselect will step you through the package installation process outlined here:
1. Choose the access method to use. 2. Update list of available packages, if possible. 3. Select the packages you want on your system. 4. Install and upgrade wanted packages. 5. Configure any packages that are unconfigured. 6. Remove unwanted software.
As each step is completed successfully, dselect will lead you on to the next. Go through them in order without skipping any steps.
Here and there in this document we talk of starting another shell. Linux has six console sessions or shells available at any one time. You switch between them by pressing Left Alt-F1 through Left Alt-F6, after which you log in on your new shell and go ahead. The console used by the install process is the first one, a.k.a. tty1, so press Left Alt-F1 when you want to return to that process.
3.20.2 Once dselect Is Launched
Once in dselect, you will get this screen:
Debian Linux ‘dselect’ package handling frontend. 0. [A]ccess Choose the access method to use. 1. [U]pdate Update list of available packages, if possible. 2. [S]elect Request which packages you want on your system. 3. [I]nstall Install and upgrade wanted packages. 4. [C]onfig Configure any packages that are unconfigured. 5. [R]emove Remove unwanted software. 6. [Q]uit Quit dselect.
Let’s look at these one by one.
Access
Here we tell dselect where our packages are. Ignore the order that these appear in. It is very important that you select the proper method for installation. You may have a few more methods listed, or a few less, or you may see them listed in a different order; just don’t worry about it. In the following list, we describe the different methods.
multi_cd. Quite large and powerful, this complex method is the recommended way of installing a recent version of Debian from a set of multiple binary CDs. Each of these CDs should contain information about the packages in itself and all prior CDs (in the file Packages.cd). When you first select this method, be sure the CD-ROM you will be using is not mounted. Place the last binary disk of the set (we don’t need the source CDs) in the drive and answer the questions you are asked:
CD-ROM drive location Confirmation that you are using a multi-cd set The location of the Debian distribution on the disk(s) [ Possibly ] the location(s) of the Packages file(s)
Once you have updated the available list and selected the packages to be installed, the multi_cd method diverges from normal procedure. You will need to run an “install” step for each of the CDs you have, in turn. Unfortunately, due to the limitations of dselect, it will not be able to prompt you for a new disk at each stage; the way to work for each disk is outlined here:
1. Insert the CD in your CD-ROM drive. 2. From the main dselect menu, select “Install.” 3. Wait until dpkg finishes installing from this CD. (It may report installation successful, or possibly installation errors. Don’t worry about these until later.) 4. Press Return to go back to the main dselect menu. 5. Repeat with the next CD in the set.
It may be necessary to run the installation step more than once to cover the order of package installation; some packages installed early may need to have later packages installed before they will configure properly.
Running a “Configure” step is recommended to help fix any packages that may end up in this state.
multi_nfs, multi_mount. These are similar to the multi_cd method and are refinements on the theme of coping with changing media—for example, installing from a multi_cd set exported via NFS from another machine’s CD-ROM drive. indexdselect!multi-NFS, multi-mount installation
apt. One of the best options for installation from a local mirror of the Debian archive or from the network. This method uses the “apt” system to do complete dependency analysis and ordering, so it’s most likely to install packages in the optimal order.
Configuration of this method is straightforward. You may select any number of different locations, mixing and matching file: URLs (local disks or NFS mounted disks), http: URLs, or ftp: URLs. Note, however, that the HTTP and FTP options do not support local authenticating proxies.
If you have proxy server for either HTTP or FTP (or both), make sure you set the http_proxy and ftp_proxy environment variables, respectively. Set them from your shell before starting dselect by using the following command:
# export http_proxy=http://gateway:3128/ # # dselect # # # # Update
dselect will read the Packages or Packages.gz files from the mirror and create a database on your system of all available packages. This may take a while as it downloads and processes the files.
Select
Hang on to your hat. This is where it all happens. The object of the exercise is to select just which packages you wish to have installed.
Press Enter. If you have a slow machine, be aware that the screen will clear and can remain blank for 15 seconds. So don’t start bashing keys at this point.
The first thing that comes up on the screen is page 1 of the Help file. You can get to this help by pressing ? at any point in the “Select” screens, and you can page through the help screens by hitting the . (full stop) key.
Before you dive in, note these points:
◼ To exit the “Select” screen after all selections are complete, press Enter. This will return you to the main screen if there is no problem with your selection. Otherwise, you will be asked to deal with that problem. When you are happy with any given screen, press Enter to get out. ◼ Problems are quite normal and are to be expected. If you select package A and that package requires package B to run, dselect will warn you of the problem and will most likely suggest a solution. If package A conflicts with package B (i.e., if they are mutually exclusive), you will be asked to decide between them.
Let’s look at the top two lines of the Select screen. This header reminds us of some of the special keys listed in Table 3.1.
Table 3.1: Special dselect keys +------------------------------------------------------+ | Key | Description | |------+-----------------------------------------------| | + | Select a package for installation. | |------+-----------------------------------------------| | = | Place a package on hold | |------+-----------------------------------------------| | - | Remove a package. | |------+-----------------------------------------------| | _ | Remove a package and its configuration files. | |------+-----------------------------------------------| | i, I | Toggle/cycle information displays. | |------+-----------------------------------------------| | o, O | Cycle through the sort options. | |------+-----------------------------------------------| | v, V | A terse/verbose toggle. | +------------------------------------------------------+
Table 3.2 lists the states that dselect uses to denote the status of each package it is aware of.
Table 3.2: dselect Package States +-----------------------------------------------+ | Flag | Meaning | Possible values | |------+-----------------+----------------------| | E | Error | Space, R, I | |------+-----------------+----------------------| | I | Installed State | Space, *, -, U, C, I | |------+-----------------+----------------------| | O | Old Mark | *, -, =, _, n | |------+-----------------+----------------------| | M | Mark | *, -, =, _, n | +-----------------------------------------------+
Rather than spell all this out here, I refer you to the Help screens where all is revealed. One example, though.
You enter dselect and find a line like this:
EIOM Pri Section Package Description ** Opt misc loadlin a loader (running under DOS) for LINUX
This is saying that loadlin was selected when you last ran dselect and that it is still selected, but it is not installed. Why not? The answer must be that the loadlin package is not physically available. It is missing from your mirror.
The information that dselect uses to get all the right packages installed is buried in the packages themselves. Nothing in this world is perfect, and it does sometimes happen that the dependencies built into a package are incorrect, which means that dselect simply cannot resolve the situation. A way out is provided where the user can regain control; it takes the form of the commands Q and X, which are available in the Select screen.
Q An override. Forces dselect to ignore the built-in dependencies and to do what you have specified. The results, of course, will be on your own head.
X Use X if you get totally lost. It puts things back the way they were and exits.
Select screen (dselect) Keys that help you not to get lost (!) are R, U, and D.
R Cancels all selections at this level. Does not affect selections made at the previous level.
U If dselect has proposed changes and you have made further changes U will restore dselect’s selections.
D Removes the selections made by dselect, leaving only yours.
An example follows. The boot-floppies package (not an example for beginners, I know, but it was chosen because it has a lot of dependencies) depends on these packages:
◼ libc6-pic ◼ slang1-pic ◼ sysutils ◼ makedev ◼ newt0.25 ◼ newt0.25-dev ◼ popt ◼ zlib1g ◼ zlib1g-dev ◼ recode
The person maintaining boot-floppies also thinks that the following packages should be installed. These are not, however, essential:
◼ lynx ◼ debiandoc-sgml ◼ unzip
When you select boot-floppies, dselect brings up the conflict resolution screen. You’ll notice that all the required packages have been selected.
Pressing the R key puts things back to the starting point.
EIOM Pri Section Package Description __ Opt admin boot-floppie Scripts to create the Debian __ Opt devel newt0.25-dev Developer’s toolkit for newt __ Opt devel slang1-dev The S-Lang programming library __ Opt devel slang1-pic The S-Lang programming library
If you decide now that you don’t want boot-floppies, just press Enter.
Pressing the D key puts things the way I selected them in the first place:
EIOM Pri Section Package Description _* Opt admin boot-floppie Scripts to create the Debian
__ Opt devel newt0.25-dev Developer’s toolkit for newt __ Opt devel slang1-dev The S-Lang programming library __ Opt devel slang1-pic The S-Lang programming library
Pressing the U key restores dselect’s selections:
EIOM Pri Section Package Description _* Opt admin boot-floppie Scripts to create the Debian installation _* Opt devel newt0.25-dev Developer’s toolkit for newt _* Opt devel slang1-dev The S-Lang programming library _* Opt devel slang1-pic The S-Lang programming library
I suggest running with the defaults for now; you will have ample opportunities to add more later.
Whatever you decide, press Enter to accept and return to the main screen. If this results in unresolved problems, you will be bounced right back to another problem resolution screen.
The R, U, and D keys are very useful in “what if” situations. You can experiment at will and then restore everything and start again. _Don’t_ look on them as being in a glass box labeled “Break in Case of Emergency.”
After making your selections in the Select screen, press I to give you a big window, press t to take you to the beginning, and then use the Page Down key to look quickly through the settings. This way you can check the results of your work and spot glaring errors. Some people have deselected whole groups of packages by mistake and not noticed the error until too late. dselect is a _very_ powerful tool; don’t misuse it.
You should now have the situation shown in Table 3.3.
Table 3.3: Expected Package Category States +--------------------------------------+ | Package category | Status | |------------------+-------------------| | Required | all selected | |------------------+-------------------| | Important | all selected | |------------------+-------------------| | Standard | mostly selected | |------------------+-------------------| | Optional | mostly deselected | |------------------+-------------------| | Extra | mostly deselected | +--------------------------------------+
Happy? Press Enter to exit the Select process. You can come back and run Select again if you wish.
Install
dselect runs through the entire set of packages and installs those selected. Expect to be asked to make decisions as you go. It is often useful to switch to a different shell to compare, say, an old configuration with a new one. If the old file is conf.modules, the new one will be conf.modules.dpkg-dist.
The screen scrolls past fairly quickly on a fast machine. You can stop and start it with Ctrl-s and Ctrl-q, respectively, and at the end of the run, you will get a list of any uninstalled packages.
It can happen that a package does not get installed because it depends on some other package that is listed for installation but is not yet installed. The answer here is to run Install again. Cases have been reported where it was necessary to run it four times before everything slipped into place. This will vary by your acquisition method.
Configure
Most packages get configured in step 3, but anything left hanging can be configured here.
Remove
Removes packages that are installed but no longer required.
Quit
I suggest running /etc/cron.daily/find at this point, because you have a lot of new files on your system. Then you can use locate to get the location of any given file.
3.20.3 A Few Hints in Conclusion
When the install process runs dselect for you, you will doubtless be eager to get Debian running as soon as possible. Well, please be prepared to take an hour or so to learn your way around and then get it right. When you enter the Select screen for the first time, don’t make _any_ selections at all—just press Enter and see what dependency problems there are. Try fixing them. If you find yourself back at the main screen, run Select again.
You can get an idea of the size of a package by pressing i twice and looking for the “Size” figure. This is the size of the compressed package, so the uncompressed files will be a lot bigger (see “Installed-Size,” which is in kilobytes, to know it).
Installing a new Debian system is a complex thing, but dselect can do it for you as easy as can be. So take the time to learn how to drive it. Read the help screens and experiment with i, I, o, and O. Use the R key. It’s all there, but it’s up to you to use it effectively.
3.21 Glossary
The following terms will be useful to you throughout this book and in general when you’re talking about Debian.
Package. A file that contains everything needed to install, de-install, and run a particular program. The program that handles packages is dpkg. dselect is a front-end to dpkg. Experienced users often use dpkg to install or remove a package.
Package names. All package names have the form xxxxxxxxxxx.deb. Sample package names include the following:
◼ efax_08a-1.deb ◼ lrzsz_0.12b-1.deb ◼ mgetty_0.99.2-6.deb ◼ minicom_1.75-1.deb ◼ term_2.3.5-5.deb ◼ uucp_1.06.1-2.deb ◼ uutraf_1.1-1.deb ◼ xringd_1.10-2.deb ◼ xtel_3.1-2.deb
4. Logging In
Your system is now installed! Pat yourself on the back for a job well done! Now it’s time to start using the system. In this chapter, we introduce you to the Debian command line, some security principles, and how to exit the system. In later chapters, we’ll go into more detail on these topics and introduce you to the Debian graphical interface, X11.
4.1 First Steps
After you quit dselect, you’ll be presented with the login: prompt. You can now log in using the personal login and password you selected; your system is now ready to use. Let’s examine what it means to log in and how this process works.
To use Debian, you must identify yourself to the system. This is so it knows who you are, what you have permission to do, and what your preferences are.
To this end, you have a _username_ or _login_. If you installed Debian yourself, you should have been asked to give such a name during installation. If you are logging on to a system administered by someone else, you’ll have to ask him for an account on the system and a corresponding username.
You also have a password, so no one else can pretend to be you. If you don’t have a password, anyone can log on to your computer from the Internet and do bad things. If you’re worried about security, you should have a password.
Many people prefer to trust others not to do anything malicious with their account; hopefully your work environment doesn’t encourage paranoia. This is a perfectly reasonable attitude; it depends on your personal priorities and your environment. Obviously a home system does not need to be as secure as a military installation. Debian allows you to be as secure or as insecure as you like.
When you start Debian, you’ll see a _prompt:_ a request from the computer for some information. In this case, the prompt is login:.
You should type your username and, when requested, your password. The password does not appear on the screen as you type it. Press Enter after both the username and the password. If you type your username or password incorrectly, you’ll have to start over.
If you do it correctly, you’ll see a brief message and then a $ prompt. The $ is printed by a special program called the _shell_ and is thus called a _shell prompt_. This is where you give commands to the system.
Try entering the command whoami now. There is a _cursor_ to the right of the shell prompt. Your cursor is a small underscore or rectangle that indicates where you’re typing; it should move as you type. Always press Enter when you’re done typing a shell command.
whoami tells your username. You’ll then get a new shell prompt.
For the rest of the book, when we say to enter a command, you should type it at the shell prompt and press the Enter key.
When you’re done working, you may want to log out of the system. To exit the shell, enter the exit command. Keep in mind that if you remain logged in, someone could come along and use your account. Hopefully you can trust those in your office or home not to do this; but if you do not trust your environment, you should be certain to log out when you leave.
4.2 Command History and Editing the Command Line
Whatever you type after the shell prompt and before pressing Enter is called a _command line_. It’s a line of text that commands the computer to do something. The Debian default shell offers several features to make entering command lines easy.
You can scroll up to previous commands to run them again, or you can modify them slightly and _then_ run them again. Try this: Enter any command, such as whoami; then press the Up Arrow key. The whoami command will reappear at the prompt. You can then press Enter to run whoami a second time.