`dselect' Documentation for Beginners ------------------------------------- Stéphane Bortzmeyer ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- 1. Introduction ---------------- 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 which packages you wish to install (there are currently around 2050 packages in Debain 2.1). It will be run for you during the install and as it is a very powerful and somewhat complex thing which can be used for good or for evil; some knowledge of it beforehand is highly recommended. Careless use of `dselect' can severly mess up your system. `dselect' 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_ through LEFT-ALT> , 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., ttyp1, so hit _Left Alt-F1_ when you want to return to that process. ------------------------------------------------------------------------------- 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. 2.1. ``Access'' ---------------- Here's the access screen: dselect - list of access methods Abbrev. Description cdrom Install from a CD-ROM. * multi_cd Install from a CD-ROM set. nfs Install from an NFS server (not yet mounted). multi_nfs Install from an NFS server (using the CD-ROM set) (not yet mounted). harddisk Install from a hard disk partition (not yet mounted). mounted Install from a filesystem which is already mounted. multi_mount Install from a mounted partition with changing contents. floppy Install from a pile of floppy disks. apt APT Acquisition [file,http,ftp] Here we tell `dselect' where our packages are. Please ignore the order that these appear in. It is very important that you select the proper method for installation. 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 a full set of "Packages.cd" files (one for each of the archive sections) in addition to the traditional Packages files as used by the other methods. When you first select this method, be sure the CD-ROM you will be using is not mounted. Place any of the set 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 * 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). * Hit [Return] to go back to the main dselect menu. * Repeat with the next CD in the set... It may be neccesary 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 very similar to the multi-cd method above, and are refinements on the theme of coping with changing media, for example if installing off a multi-cd set exported via nfs from another machine's CD-ROM drive. 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 dependancy analysis and ordering, so it's most likely to to install packages in the optimal order. Configuration of this method is straight-forward; 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' or `ftp_proxy' environment variables, respectively. Set them from your shell before starting dselect, i.e.: # export http_proxy=http://gateway:3128/ # dselect floppy Caters for those people without CD-ROM or network access. Not recommended as a viable installation option any more if you are using traditionally-sized floppies, but may work better for LS/120 or Zip drives. Specify the location of your floppy drive, then feed floppies. The first one should contain the Packages file. This method is slow and may be unreliable due to media problems. nfs _DEPRECATED METHOD -- use apt or multi_nfs instead. Only try this method if all else fails._ This is a simple installation method, with simple requirements: give it the address of the NFS server, the location of the Debian distribution on the server and (maybe) the Packages file(s). Then dselect will install the various sections in turn from the server. Slow but easy; does not use proper ordering, so it will take many runs of the ``Configure'' step. Obviously only appropriate for NFS based installation. harddisk _DEPRECATED METHOD -- use apt or multi_mount instead. Only try this method if all else fails_ Supply the block device of the hard drive partition to use, and as usual the locations of the Debian files on that partition. Slow and easy. Does not use proper ordering, so it will take many runs of the ``Configure'' step. Not recommended, since the ``apt'' method supports this functionality, with proper ordering. mounted _DEPRECATED METHOD -- use apt or multi_mount instead. Only try this method if all else fails_ Simply specify the location(s) of the Debian files in your filesystem. Possibly the easiest method, but slow. Does not use proper ordering, so it will take many runs of the ``Configure'' step. cdrom _DEPRECATED METHOD -- use multi_cd instead. This method simply does not work with the_ Designed for single-CD installations, this simple method will ask for the location of your CD-ROM drive, the location of the Debian distribution on that disk and then (if necessary) the location(s) of the Packages file(s) on the disk. Simple but quite slow. Does not use proper ordering, so it will take many runs of the ``Configure'' step. Not recommended, because it assumes the distribution is on a single CD-ROM, which is no longer the case. Use the ``multi_cd'' method instead. If you run into any problems -- maybe Linux can not see your CD-ROM, your NFS mount is not working or you have forgotten which partition the packages are on -- you have a couple of options: * Start another shell. Fix the problem and then return to the main shell. * 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 _Control-C_ and return to the ``Access'' item. Once you are through here you will be returned to the main screen. 2.2. ``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. 2.3. ``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 is no problem with your selection. Otherwise, you will be asked to deal with that problem. 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 and that package requires package to run, then `dselect' will warn you of the problem and will most likely suggest a solution. If package conflicts with package (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. dselect - main package listing (avail., priority) mark:+/=/- verbose:v help:? EIOM Pri Section Package Inst.ver Avail.ver Description This header reminds us of some of the special keys: `+' Select a package for installation. `=' Place a package on hold -- useful on a broken package. You can reinstall 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' 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 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 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 sometimes happen that the dependancies built into a package are 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 override. 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 follows. The `boot-floppies' package (not an example for beginners, I know, but it was choosen 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' So when I select `boot-floppies' I get this screen: dselect - recursive package listing mark: +/=/- verbose:v help:? EIOM Pri Section Package Description dselect - recursive package listing mark:+/=/- verbose:v help:? EIOM Pri Section Package Description ** Opt admin boot-floppie Scripts to create the Debian installation floppy set. _* Opt devel newt0.25-dev Developer's toolkit for newt windowing library _* Opt devel slang1-dev The S-Lang programming library, development version. _* Opt devel slang1-pic The S-Lang programming library, shared library subset ki (Other packages may or may not appear, depending on what is already in your system). You'll notice that 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 dselect - recursive package listing mark:+/=/- verbose:v help:? EIOM Pri Section Package Description __ Opt admin boot-floppie Scripts to create the Debian installation floppy set. __ Opt devel newt0.25-dev Developer's toolkit for newt windowing library __ Opt devel slang1-dev The S-Lang programming library, development version. __ Opt devel slang1-pic The S-Lang programming library, shared library subset ki To decide now that you don't want boot-floppies, 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 dselect - recursive package listing mark:+/=/- verbose:v help:? EIOM Pri Section Package Description _* Opt admin boot-floppie Scripts to create the Debian installation floppy set. __ Opt devel newt0.25-dev Developer's toolkit for newt windowing library __ Opt devel slang1-dev The S-Lang programming library, development version. __ Opt devel slang1-pic The S-Lang programming library, shared library subset ki The _U_ key restores `dselect''s selections: dselect - recursive package listing mark: +/=/- verbose:v help:? EIOM Pri Section Package Description dselect - recursive package listing mark:+/=/- verbose:v help:? EIOM Pri Section Package Description _* Opt admin boot-floppie Scripts to create the Debian installation floppy set. _* Opt devel newt0.25-dev Developer's toolkit for newt windowing library _* Opt devel slang1-dev The S-Lang programming library, development version. _* Opt devel slang1-pic The S-Lang programming library, shared library subset ki I suggest running with the defaults for now -- you will have ample opportunity of adding more later. 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 the _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 deselected 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 deselected extra mostly deselected Happy? Hit _Enter_ to exit the ``Select'' process. You can come back and run ``Select'' again if you wish. 2.4. ``Install'' ----------------- `dselect' runs through the entire set of 2050 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 fast machine. You can stop/start it with _Control-s_/_Control-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'. It can happen that a package does not get installed because it depends on some other package which 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 4 times before everything slipped into place. This will vary by your acquisistion method. 2.5. ``Configure'' ------------------- Most packages get configured in step 3, but anything left hanging can be configured here. 2.6. ``Remove'' ---------------- Removes packages that are installed but no longer required. 2.7. ``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 use `locate' to get the location of any given file. ------------------------------------------------------------------------------- 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 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 section 2.3, ```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_. Use the _R_ key. It's all there, but it's up to you to use it effectively. ------------------------------------------------------------------------------- 4. Glossary ------------ The following terms are useful to you in this document and in general, when talking about Debian. Package A file which contains everything needed to install, de-install and run a particular program. The program which 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 . 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' ------------------------------------------------------------------------------- `dselect' Documentation for Beginners Stéphane Bortzmeyer