Once you have installed a system and have all the necessary packages installed, maintaining such a system with dselect is relatively easy. dselect (actually dpkg) keeps a database detailing the state of the system. What packages are installed, their versions, and additional necessary information are contained in the directory /var/lib/dpkg/info while the status of installed packages are kept in /var/lib/dpkg/status. The file /var/lib/dpkg/available is updated by dselect whenever a new archive is to be installed. This is not automatic, but happens when the [U]pdate item is chosen from the main dselect menu.
From the information in these areas, dselect can do an upgrade with little interaction. There are several preparatory tasks that should be done first, to insure dselect's success. There were several incremental upgrades to dpkg during the life of the 1.2 distribution. At one point upgrading may have ``broken'' the available file. The transition to actually using a new feature did not go as smoothly as expected. To get past this problem it will be necessary that the available file get removed. This is done by the command:
After executing this command it will be possible to install the following packages using dpkg:
These are critical packages and, although dselect can often ``do the right thing'' when upgrading an installed system, it is advisable to install these by hand. In any case it is often necessary to upgrade dpkg by hand. This package has the newest version of dselect as well as dpkg and often packages in the new release will need features that are only available in the newest version of dpkg.
Upgrades from 2.0 to 2.1, 2.2, or 2.3 should have none of these problems.
Once this preliminary work has been done, dselect can be run in normal fashion to perform a complete system upgrade. If there are packages that should not be upgraded for one reason or another, they can be placed on hold in the [S]elect screens. To do this, search out the package using the `/' and press `H'. This will put the package on hold and dselect will do nothing with respect to this package. Additional packages of interest can be added at this time as well, so the system can be enhanced by new packages that are of interest.
After configuring these details in [S]elect, the upgrade will proceed as expected.