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:
Choose the access method to use.
Update list of available packages, if possible.
Select the packages you want on your system.
Install and upgrade wanted packages.
Configure any packages that are unconfigured.
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 pressingLeft 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.
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
The Access screen is shown in Figure 3.2 on page .
Figure 3.2:dselect Access screen
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:
Insert the CD in your CD-ROM drive.
From the main dselect menu, select ``Install.''
Wait until dpkg finishes installing from this CD. (It may report installation
successful, or possibly installation errors. Don't worry about these until later.)
Press Return to go back to the main dselect menu.
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), https: 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=https://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, pressEnter. 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.
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-sandCtrl-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.
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.
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 pressingitwice 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.