This file documents Dselect for first-time users and is intended to help in
getting Debian installed successfully.  It makes no attempt to explain 
everything, so when you first meet dselect work through the help screens.

Dselect is used to select just which packages (from ~800) you wish to install.
It will be run for you during the install and as it is a very powerful and 
somewhat complex thing some knowledge of it beforehand will not go astray.

It will step you through the package installation process as follows:

	Choose the access method to use.
	Update list of available packages, if possible.
	Request which 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 it 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 6 console sessions or shells available at any one time.  You switch
betwen them by hitting LEFT-ALT <F1> ... <F6>, after which you log in on your
new shell and go ahead.  The shell used by the install process is #1 so hit
LEFT-ALT <F1> when you want to return to that process.

Once in dselect you will get this screen:-

Debian Linux `dselect' package handling front end. 
   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.
---------------------------------------------------------------------
0  Access:

Here's the access screen:


dselect - list of access methods

  Abbrev.        Description

  cdrom          Install from a CD-ROM.
  nfs            Install from an NFS server (not yet mounted).
  harddisk       Install from a hard disk partition (not yet mounted).
  mounted        Install from a filesystem which is already mounted.
  floppy         Install from a pile of floppy disks.
  ftp            Install using ftp.




Here we tell dselect where our packages are.  Note that the first three 
items are just a convenience and it would be just as good if you mounted
your cdrom, nfs mount or other partition yourself and then used the
_mounted_ option.  It follows that if your cdrom _is_ already mounted
then you use the _mounted_ item, not the cdrom item.  The same thing goes
for nfs and for partitions on your harddisk.

If you run into a problem here - maybe Linux can not see your cdrom,
your nfs mount is not working or you have forgotten which partition the
packages are on - you have a couple of options:-

a)	Start another shell.  Fix the problem and then return to the main
	shell.
b)	Quit dselect and run it again later.  You might even need to shut
	down the computer to solve some problem.  This is quite ok but 
	when you come back to dselect run it as root.  It will not be run
	automatically after the first time.

After you choose the access method dselect will get you to indicate the
precise location of the packages.  If you do not get this right the first
time hit ^C and return to the Access item.

Once you are through here you will be returned to the main screen.

---------------------------------------------------------------------
1  Update

Dselect will read the Packages or Packages.gz files from the mirror and
create a database on your system of all available packages.

---------------------------------------------------------------------
2  Select

Hang on to your hat.  This is where it all happens.  The object of the
excercise is to select just which packages you wish to have installed.

Hit <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 hitting ? 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, hit <Enter>.
This will return you to the main screen _if_ there are no problems
with your selection.  Else you will be asked to deal with those problems.
When you are happy with any given screen hit <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, then dselect
will warn you of the problem and will most likely suggest a solution.
If package A conflicts with package B (they are mutually exclusive)
you will be asked to decide between them.


Let's look at the top two lines of the Select screen.

dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description


This tells us of some of the special keys:
	+	select a package
	=	place a package on hold - useful on a broken package.  You can
		 reinstal an older version and place it on hold while you wait
		 for a new one to appear.
	-	remove a package
	_	remove a package and its config files
	i,I	toggle/cycle info displays
	o,O	cycle through the sort options
	v,V	is a terse/verbose toggle.  Use this key to unlock the meanings
		of EIOM on line two, but I'll give you a summary here anyway.

(Note that upper and lower case keys are quite different in effect.)

Flag	Meaning			Possible values
 E	Error			Space, R
 I	Installed state		Space, *, -, U, C, I
 O	Old mark		*, -, =, _, n
 M	Mark			*, -, =, _, n

Rather that 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 kernel i

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 avaiable.  It is missing from
your mirror.




The information which dselect uses to get all the right packages installed
is buried in the packages themselves.  Nothing in this world is perfect
and it does happen that the dependancies built into a package is 
incorrect, with the result that dselect simply cannot resolve the 
situation.  A way out is provided where the user can regain control and it
takes the form of the commands Q and X which are available in the
Select screen.

Q	An over-ride.  Forces dselect to ignore the built in dependancies
	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.




Keys which 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:

The boot-floppies package depends on these packages:
	libc5-pic
	ncurses3.0-pic
	mkrboot
	ncurses3.0-dev

The person maintaining boot-floppies also thinks that the following
packages should be installed.  These are not, however, essential:
	loadlin
	fdos
	dosemu

So when I select boot-floppies I get this screen:

dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  _* Opt devel    boot-floppie Scripts to create the Debian installation floppy
  _* Xtt devel    libc5-pic    Kit for building specialized versions of the sha
  _* Xtr devel    ncurses3.0-p Video termial manipulation: Shared-library subs
  _* Opt devel    mkrboot      Make a kernel + rootimage bootable from one disk
  _* Opt devel    ncurses3.0-d Video terminal manipulation: Developer's librari
  _* Opt misc     loadlin      a loader (running under DOS) for LINUX kernel i
  _* Opt misc     fdos         Free DOS (Kernel + boot utilities + Documentatio
  __ Opt misc     dosemu       The Linux DOS Emulator

See how all the required packages have been selected for me.



The R key puts things back to the starting point.

dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  __ Opt devel    boot-floppie Scripts to create the Debian installation floppy
  __ Xtt devel    libc5-pic    Kit for building specialized versions of the sha
  __ Xtr devel    ncurses3.0-p Video termial manipulation: Shared-library subs
  __ Opt devel    mkrboot      Make a kernel + rootimage bootable from one disk
  __ Opt devel    ncurses3.0-d Video terminal manipulation: Developer's librari
  __ Opt misc     loadlin      a loader (running under DOS) for LINUX kernel i
  __ Opt misc     fdos         Free DOS (Kernel + boot utilities + Documentatio
  __ Opt misc     dosemu       The Linux DOS Emulator

(If I decide now that I don't want boot-floppies I just hit <Enter>.)



The D key puts things the way I selected them in the first place.

dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  _* Opt devel    boot-floppie Scripts to create the Debian installation floppy
  __ Xtt devel    libc5-pic    Kit for building specialized versions of the sha
  __ Xtr devel    ncurses3.0-p Video termial manipulation: Shared-library subs
  __ Opt devel    mkrboot      Make a kernel + rootimage bootable from one disk
  __ Opt devel    ncurses3.0-d Video terminal manipulation: Developer's librari
  __ Opt misc     loadlin      a loader (running under DOS) for LINUX kernel i
  __ Opt misc     fdos         Free DOS (Kernel + boot utilities + Documentatio
  __ Opt misc     dosemu       The Linux DOS Emulator



The U key restores dselect's selections.

dselect - recursive package listing                  mark:+/=/- verbose:v help:?
EIOM Pri Section  Package      Description
  _* Opt devel    boot-floppie Scripts to create the Debian installation floppy
  _* Xtt devel    libc5-pic    Kit for building specialized versions of the sha
  _* Xtr devel    ncurses3.0-p Video termial manipulation: Shared-library subs
  _* Opt devel    mkrboot      Make a kernel + rootimage bootable from one disk
  _* Opt devel    ncurses3.0-d Video terminal manipulation: Developer's librari
  _* Opt misc     loadlin      a loader (running under DOS) for LINUX kernel i
  _* Opt misc     fdos         Free DOS (Kernel + boot utilities + Documentatio
  __ Opt misc     dosemu       The Linux DOS Emulator


I suggest running with the defaults for now - you will have ample opportunity
of adding more later.  A possible exception which you may choose to deselect 
depending on your experience is:-
	emacs	(very big, not everyone wants it)

And I would suggest not installing:
	inn	(big, difficult to get going)
	x11	(big, difficult to get going)

Whatever you decide, hit <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.

So 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 labelled Break In Emergency.

After making your selections in the Select screen, hit I to give you a big
window, 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 dselected whole 
groups of packages by mistake and not noticed the error until too late.
Dselect is a _very_ powerful tool so don't misuse it.

You should now have this situation:
	package category	status

	required		all selected
	important 		all selected
	standard		mostly selected
	optional		mostly dselected
	extra			mostly dselected

Happy?  Hit <Enter> to exit the Select process.  You can come back and
run Select again if you wish.

---------------------------------------------------------------------
3  Install


Dselect runs through the entire 800 packages and installs those selected.
Expect to get asked to make decisions as you go.  It is often useful to
switch to a different shell to compare, say, an old config with a new one.
If the old file is conf.modules the new one will be conf.modules.dpkg-new.

The screen scrolls past fairly quickly on a new machine.  You can stop/start
it with ^S/^Q and at the end of the run you will get a list of any 
uninstalled packages.  If you want to keep a record of everything that 
happens use normal Unix features like tee or script.

---------------------------------------------------------------------
4  Configure

Most packages get configured in step 3, but anything left hanging can be
configured here.

---------------------------------------------------------------------
5  Remove

Removes packages that are installed but no longer required.
---------------------------------------------------------------------
6  Quit

I suggest running /etc/cron.daily/find at this point as you have a lot 
of new files on your system.  Then you can get the location of any given
file by using locate.

---------------------------------------------------------------------
A few hints in conclusion.  

When the install process runs dselect for you, you will doubtless be eager
to get Debian running ASAP.  Well, please be prepared to take an hour or so
as you have 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 hit <Enter> and see what dependancy 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 hitting i twice and looking 
for the Size figure.  This is the size of the crunched package, so the
uncrunched files will be a lot bigger.

Installing a new Debian system is a very complex thing, but dselect can do
it for you as easily 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.  It's all there,
but it's up to you to use it effectively.

==========================================================================
Glossary:

Package		A file which contains everything needed to install,
		de-install and run a particular program.

Package names	All package names have the form xxxxxxxxxxx.deb
		Sample package names are:

		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