[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ next ]

# The Debian GNU/Linux FAQ
Chapter 8 - Keeping your Debian system up-to-date

A Debian goal is to provide a consistent upgrade path and a secure upgrade process. We always do our best to make upgrading to new releases a smooth procedure. In case there's some important note to add to the upgrade process, the packages will alert the user, and often provide a solution to a possible problem.

You should also read the Release Notes document that describes the details of specific upgrades. It is shipped on all Debian CDs and available on the WWW at `http://www.debian.org/releases/stable/releasenotes`.

## 8.1 How can I upgrade my Debian 1.3.1 (or earlier) distribution, based on libc5, to 2.0 (or later), based on libc6?

There are several ways to upgrade:

- Using a simple shell script called `autoup.sh` which upgrades the most important packages. After `autoup.sh` has done his job, you may use dselect to install the remaining packages en masse. This is probably the recommended method, but not the only one.

  Currently, the latest release of `autoup.sh` may be found on the following locations:

  - `http://www.debian.org/releases/2.0/autoup/`

  - `http://www.taz.net.au/autoup/`

  - `http://debian.vicnet.net.au/autoup/`

- Following closely the `Debian libc5 to libc6 Mini-HOWTO` and upgrade the most important packages by hand. `autoup.sh` is based on this Mini-HOWTO, so this method should work more or less like using `autoup.sh`.

- Using a libc5-based `apt`. APT stands for Advanced Package Tool, and it might replace dselect some day. Currently, it works just as a command-line interface, or as a dselect access method. You will find a libc5 version in the `dists/slink/main/upgrade-older-i386` directory at the Debian archives.

- Using just dselect, without upgrading any package by hand first. It is highly recommended that you do NOT use this method if you can avoid it, because dselect alone currently does not install packages in the optimal order. APT works much better and it is safer.

## 8.2 How can I keep my Debian system current?

One could simply execute an anonymous ftp call to a Debian archive, then peruse the directories until one finds the desired file, and then fetch it, and finally install it using `dpkg`. Note that `dpkg` will install upgrade files in place, even on a running system. Sometimes, a revised package will require the installation of a newly revised version of another package, in which case the installation will fail until/unless the other package is installed.

Many people find this approach much too time-consuming, since Debian evolves so quickly -- typically, a dozen or more new packages are uploaded every week. This number is larger just before a new major release. To deal with this avalanche, many people prefer to use a more automated method. Several different packages are available for this purpose:

### 8.2.1 aptitude

APT is an advanced interface to the Debian packaging system. It features complete installation ordering, multiple source capability and several other unique features, see the User's Guide in `/usr/share/doc/apt-doc/guide.html/index.html` (you will have to install the `apt-doc` package).

`aptitude` is the recommended package manager for Debian GNU/Linux systems. It is a text-based interface to APT using the curses library, and can be used to perform management tasks in a fast and easy way.

Before you can use `aptitude`, you'll have to edit the `/etc/apt/sources.list` file to set it up. If you wish to upgrade to the latest stable version of Debian, you'll probably want to use a source like this one:

         http://http.us.debian.org/debian stable main contrib non-free

You can replace http.us.debian.org with the name of a faster Debian mirror near you. See the mirror list at `http://www.debian.org/misc/README.mirrors` for more information.

More details on this can be found in the `sources.list(8)` manual page.

To update your system, run

         aptitude update

followed by

         aptitude dist-upgrade

Answer any questions that might come up, and your system will be upgraded. See also aptitude, Section 7.1.3.

### 8.2.2 apt-get, dselect and apt-cdrom

`apt-get` is an APT-based command-line tool for handling packages, and the APT dselect method is an interface to APT through `dselect`. Both of these provide a simple, safe way to install and upgrade packages.

To use `apt-get`, install the `apt` package, and edit the `/etc/apt/sources.list` file to set it up, just as for aptitude, Section 8.2.1.

Then run

         apt-get update

followed by

         apt-get dist-upgrade

Answer any questions that might come up, and your system will be upgraded. See also the `apt-get(8)` manual page, as well as APT, Section 7.1.2.

To use APT with `dselect`, choose the APT access method in dselect's method selection screen (option 0) and then specify the sources that should be used. The configuration file is `/etc/apt/sources.list`. See also dselect, Section 7.1.4.

If you want to use CDs to install packages, you can use `apt-cdrom`. For details, please see the Release Notes, section "Setting up for an upgrade from a local mirror".

Please note that when you get and install the packages, you'll still have them kept in your /var directory hierarchy. To keep your partition from overflowing, remember to delete extra files using `apt-get clean` and `apt-get autoclean`, or to move them someplace else (hint: use `apt-move`).

### 8.2.3 dpkg-ftp

This is an older access method for `dselect`. It can be invoked from within `dselect`, thereby allowing a user the ability to download files and install them directly in one step. To do this, select the `ftp` access method in `dselect` (option 0) and specify the remote host name and directory. `dpkg-ftp` will then automatically download the files that are selected (either in this session of `dselect` or earlier ones).

Note that, unlike the `mirror` program, `dpkg-ftp` does not grab everything at a mirror site. Rather, it downloads only those files which you have selected (when first starting up `dpkg-ftp`), and which need to be updated.

`dpkg-ftp` is somewhat obsolete. You should use the APT access method with ftp:// URLs in `sources.list` instead.

### 8.2.4 mirror

This Perl script, and its (optional) manager program called `mirror-master`, can be used to fetch user-specified parts of a directory tree from a specified host via anonymous FTP.

`mirror` is particularly useful for downloading large volumes of software. After the first time files have been downloaded from a site, a file called `.mirrorinfo` is stored on the local host. Changes to the remote file system are tracked automatically by `mirror`, which compares this file to a similar file on the remote system and downloads only changed files.

The `mirror` program is generally useful for updating local copies of remote directory trees. The files fetched need not be Debian files. (Since `mirror` is a Perl script, it can also run on non-Unix systems.) Though the `mirror` program provides mechanisms for excluding files names of which match user-specified strings, this program is most useful when the objective is to download whole directory trees, rather than selected packages.

### 8.2.5 dpkg-mountable

dpkg-mountable adds an access method called `mountable' to dselect's list, which allows you to install from any file system specified in /etc/fstab. For example, the archive could be a normal hard disk partition or an NFS server, which it will automatically mount and umount for you if necessary.

It also has some extra features not found in the standard dselect methods, such as provision for a local file tree (either parallel to the main distribution or totally separate), and only getting packages which are required, rather than the time-consuming recursive directory scan, as well as logging of all dpkg actions in the install method.

## 8.3 Must I go into single user mode in order to upgrade a package?

No. Packages can be upgraded in place, even in running systems. Debian has a `start-stop-daemon` program that is invoked to stop, then restart running process if necessary during a package upgrade.

## 8.4 Do I have to keep all those .deb archive files on my disk?

No. If you have downloaded the files to your disk (which is not absolutely necessary, see above for the description of dpkg-ftp), then after you have installed the packages, you can remove them from your system.

## 8.5 How can I keep a log of the packages I added to the system? I'd like to know when which package upgrades and removals have occured!

Passing the `--log`-option to `dpkg` makes `dpkg` log status change updates and actions. It logs both the `dpkg`-invokation (e.g.

         2005-12-30 18:10:33 install hello 1.3.18 2.1.1-4

) and the results (e.g.

         2005-12-30 18:10:35 status installed hello 2.1.1-4

) If you'd like to log all your `dpkg` invokations (even those done using frontends like `aptitude`), you could add

         log /var/log/dpkg.log

to your `/etc/dpkg/dpkg.cfg`. Be sure the created logfile gets rotated periodically. If you're using `logrotate`, this can be achieved by creating a file `/etc/logrotate.d/dpkg` with contents

         /var/log/dpkg {
           missingok
           notifempty
         }

More details on `dpkg` logging can be found in the `dpkg(1)` manual page.

`aptitude` logs the package installations, removals, and upgrades that it intends to perform to `/var/log/aptitude`. Note that the results of those actions are not recorded in this file!

Another way to record your actions is to run your package management session within the `script(1)` program.

[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ 15 ] [ next ]

The Debian GNU/Linux FAQ