[ previous ] [ Contents ] [ next ]

Release Notes for Debian GNU/Linux 3.0 (`woody'), Intel x86
Chapter 3 Upgrades from Previous Releases


3.1 Detailed Changes to the System

******************

We need this information, and any port specific details.

******************


3.1.1 Renamed Packages

The following packages have been renamed as shown. In most, if not all, cases, Conflicts:, Replaces:, and Provides: fields (or even dummy packages) have been provided so the new package will either get installed automatically, and/or will safely replace or remove the old one. This also includes packages that have been merged into other packages as this gives the same end result as a rename.

     
               gimp -> gimp1.2 (GIMP1.2 release only)
               dict-web1913 -> dictgcide
               amcl -> gnome-mud
               rstart -> xutils
               rstartd -> xutils
               xspecs -> xbooks
               xfonts-cjk -> xfonts-base
               xcontrib -> xbase-clients
               xlib6g-static -> xlibs-dev
               listar -> ecartis
               cln -> libcln2
               cln-dev -> libcln-dev
               pgp-i, pgp-us -> pgp
               cvs-doc -> cvs
               acm -> acm4
               user-ja -> language-env
               expect5.31, expect5.24 -> expect
               user-ja -|> language-env

Although we have made every effort to complete this list, it may still not be exhaustive.


3.1.2 Split Packages

Between releases 2.2 (`potato') and 3.0 (`woody'), a number of packages have been split into two or more packages. The reason for these splits, in general, is that the original package provided a diverse set of functionalities, and that few, if any, users used all of these components.Some packages will display a notice warning of the split during the installation, some mention it in the package description, and some just ignore it.

If you find that a familiar package is lacking some or all of its functionality, check the list below to see if you need to install additional packages to restore the original functionality. Failing that, check the changelog for the package, which can be found in /usr/share/doc/package/changelog.Debian.gz.

The following is a list of packages that have been split (this list may not be complete):

              
                 isdnutils -> ipppd, isdnlog, isdnutils-doc, isdnutils-xtools,
                 isdnvboxserver, isdnvboxclient
              
                 xpdf -> xpdf-reader, xpdf-utils, xpdf-chinese-simplified,
                 xpdf-chinese-traditional, xpdf-cyrillic, xpdf-japanese,
                 xpdf-korean,xpdf-thai
                 
                 cupsys -> cupsys (CUPS daemon), cupsys-client (CUPS client),
                 cupsys-pstoraster (postscript rasterizer)
                 
                 groff -> groff-base, groff, groff-x11
                 
                 xspectemu -> spectemu-common, spectemu-svga, spectemu-x11
                 
                 ecpg ->  libecpg3 (library), postgresql-dev (development
                 files)
                 
                 postgresql-pl -> libpgperl, libpgtcl
                 
                 netbase -> netbase, portmap, ifupdown, ipautofw, ipchains,
                 ipfwadm, ipmasqadm, iputils, net-tools, netkit-base
                 
                 uqwk -> uqwk, uqwk-spool
                 
                 tetex-bin -> tetex-bin, texi2html
                 
                 xproxy -> lbxproxy, proxymngr, xfwp
                 
                 xlib6g -> xlibs, libxaw6
                 
                 xlib6g-dev -> libxaw6-dev, xlibs-dev  
                 
                 xbase-clients, xlib6g-dev, xcontrib -> xutils
     
                 xconq -> xconq, xconq-common
                 
                 python-imaging-doc -> python-imaging-doc,
                 python-imaging-doc-html, python-imaging-doc-pdf
                 
                 gnumeric -> gnumeric, gnumeric-doc, gnumeric-python
                 
                 latex2rtf -> latex2rtf, latex2rtf-doc
                 
                 glade -> glade, glade-gnome, glade-gnome-db, glade-common,
                 glade-doc
                 
                 apmd -> apmd, xapm, libapm1, libapm-dev, powermgmt-base
     
                 uudeview -> uudeview, xdeview, libuu-dev
                 
                 sysklogd -> sysklogd, klogd 
                 
                 xtide -> xtide, xtide-data
                 
                 snack -> libsnack2, libsnack2-dev, libsnack2-doc
                 
                 gnapster -> gnapster, gnapster-gtk
                 
                 proftpd -> proftpd, proftpd-common, proftpd-doc, proftpd-ldap,
                 proftpd-mysql, proftpd-pgsql
                 
                 alsaplayer -> alsaplayer-common, alsaplayer-gtk,
                 alsaplayer-nas, alsaplayer-text, libalsaplayer-dev,
                 libalsaplayer0


3.1.3 Important program syntax changes

Debian attempts to avoid changing upstream packages, therefore changes in the original packages will be present in Debian GNU/Linux

In Debian GNU/Linux 2.2 'Potato' release tar used the

     -I

switch for bzip compression, however now the

     -j

switch is in use. Any you may need to change scripts accordingly.


3.2 Preparing for the Upgrade

Before upgrading your system, it is strongly recommended that you make a full backup, or at least backup any data or configuration information you can't afford to lose. The upgrade tools and process are quite reliable, but a hardware failure in the middle of an upgrade could result in a severely damaged system.

The main things you'll want to back up are the contents of /etc, /var/lib/dpkg and the output of dpkg --get-selections \*.

It's wise to inform all users in advance of any upgrades you're planning, although users accessing your system via ssh (at least) shouldn't notice much during the upgrade, and may want to continue working. If you wish to take extra precautions, back up or unmount user's partitions (/home) before upgrading. A reboot will not normally be necessary.

Distribution upgrade should be done either locally from a textmode virtual console (or a directly connected serial terminal), or remotely via an ssh link.

Important: You should not upgrade using telnet, rlogin, rsh, or from an X session managed by xdm on the machine you are upgrading. That is because each of those services may well be terminated during the upgrade, which can result in an inaccessible system that is only half-upgraded.


3.2.1 Checking Packages Status

Regardless of the method used for upgrading, it is recommended that you check the status of all packages first, and verify that all packages are in an upgradable state. The following command will show any packages which have a status of Half-Installed or Failed-Config, and those with any error status.

             
                 # dpkg --audit

You could also inspect the state of all packages on your system using dselect, or with commands such as

              
                 # dpkg -l | pager

or

              
                 # dpkg --get-selections > ~/curr-pkgs.txt

It is desirable to remove any holds before upgrading. If any package that is essential for the upgrade is on hold, the upgrade will fail. You can identify packages on hold with

              
                 # dpkg --audit

If you changed and recompiled a package locally, and didn't rename it or put an epoch in the version, you must put it on hold to prevent it from being upgraded. The `hold' package state can be changed either by using dselect (in the Select menu, use the `H' and `G' keys to hold and unhold, respectively), or by editing the file produced by

             
                 dpkg --get-selections > ~/curr-sels.txt

to change "hold" to "install" (or vice versa), and then, with root permissions, doing

              
                dpkg --set-selections < ~/curr-sels.txt


3.2.2 Special Considerations for SSH Users

The commercial SSH located in the ssh package before release 2.2 or in the ssh-nonfree in release 2.2 has been replaced by the DFSG free ssh package (OpenSSH) in this release. The commercial SSH collection is no longer present and the ssh-nonfree package is a dummy package which installs the OpenSSH ssh package. The ssh package includes a Debconf question which will regenerate a configuration which is OpenSSH compatible.

Please note that the ssh package in this release enables root logins by default. (Disabled in 2.2) If you do not need this feature for remote access to your system you should ensure that the PermitRootLogin option in /etc/ssh/sshd_config is set to no after upgrade for security reasons. To ensure dpkg never updates the file to match new defaults, you can simply modify the file locally. Adding a blank line is enough.


3.2.3 Directories Possibly Needing Attention

It is important that the /etc/rcS.d directory exists prior to the upgrade; the installation of the libc6 package will fail otherwise.

The /usr/share/doc directory (if it exists already) should not be a symlink (e.g. to /usr/doc), since that will cause some packages to break. However, symlinking /usr/doc to /usr/share/doc is allowed. Please note that if you use such a symlink there will be numerous messages about /usr/doc directories that can't be removed. Those are normal, and you can safely ignore them.


3.3 Preparing Sources for APT

The recommended method of upgrading is to use apt-get directly, as described here. APT's built-in dependency analysis enables smooth upgrades and easy installations.

You should not be doing any major package upgrades with access methods other than apt in dselect, because those, unlike the apt method, do not do any logical package ordering during the installation, and therefore aren't as reliable. Additionally, such upgrades are not well tested and are unsupported by Debian.

Any package installation operation must be run with superuser privileges, so either login as root or use su or sudo to gain the necessary access rights.

Before starting the upgrade you must set up apt's configuration file for package lists, /etc/apt/sources.list.

apt will consider all packages that can be found via any "deb" line, and install the package with the highest version number, giving priority to the first mentioned lines (that way, in case of multiple mirror locations, you'd typically first name a local harddisk, then CD-ROMs, and then HTTP/FTP mirrors).


3.3.1 Upgrading from Pre-Potato Releases or Using CD-ROMs

If you want to upgrade using CD-ROMs, or if you are upgrading from Debian GNU/Linux release 2.0 or earlier, you need the versions of apt and dpkg available in the http://http.us.debian.org/debian/dists/woody//main/upgrade-i386/ directory at your Debian mirror, or the upgrade/ directory on the first CD-ROM from your Debian 3.0 CD set.

Download and install these files, using (in this exact order):

                
                  dpkg -i dpkg_1.6.13_i386.deb
                  dpkg -i apt_0.3.19_i386.deb

These are specially compiled static versions, that can be installed (and run) on any Debian system.

If you are upgrading from Debian GNU/Linux version 2.1 or later and you want to upgrade using either the network (FTP, HTTP) or a local packages mirror (possibly a disk partition, or an NFS-mounted mirror), then you can use the apt and dpkg packages that came with that Debian release. Of course, if apt is not installed yet, install it now.

Please note that for upgrading with multiple CDs from any Debian release you need the static versions of apt and dpkg packages, as described above.

It is recommended that you read the apt-get(8) and the sources.list(5) man pages at this time.

If you installed the static versions of apt and dpkg, you can only access the manpages with commands like man -l /usr/share/man/man8/apt-get.8.gz until the man-db package is upgraded.


3.3.2 Adding APT Internet Sources

The default configuration is set up for installation from main Debian Internet servers, but you may wish to modify /etc/apt/sources.list to use other mirrors, preferably a mirror that is network-wise closest to you.

Otherwise, Debian HTTP or FTP mirror addresses can be found at http://www.debian.org/distrib/ftplist (look at the "Full list of mirrors" section). HTTP mirrors are generally speedier than ftp mirrors.

For example, suppose your closest Debian mirror is http://mirrors.kernel.org/debian/. When inspecting that mirror with a web browser or FTP program, you will notice that the main directories are organized like this:

                
                  http://mirrors.kernel.org/debian/dists/woody/main/binary-i386/...
                  http://mirrors.kernel.org/debian/dists/woody/contrib/binary-i386/...

To use this mirror with apt, you add this line to your sources.list file:

                
                  deb http://mirrors.kernel.org/debian woody main contrib

Note that the `dists' is added implicitly, and the arguments after the release name are used to expand the path into multiple directories.

If the mirror also contains the non-US sections under http://mirrors.kernel.org/debian/debian-non-US, also add the following line:

     
                  deb http://mirrors.kernel.org/debian/debian-non-US woody/non-US main contrib

After adding your new sources, disable the previously existing "deb" lines in sources.list, by placing a hash sign (#) in front of them.

Any package needed for installation that is fetched from the network is stored in the /var/cache/apt/archives (and the partial/ subdirectory, during download), so you must make sure you have enough space before attempting to start the installation. With a reasonably extended Debian installation, you can expect at least 300 MB of downloaded data.

Note: if you are using the static versions of apt and dpkg, the hostname-lookup is broken (which is one reason to use the normal apt when upgrading over the network). The solution is to simply put the mirrors' IP address in the "deb" line. (Hint: nslookup some-server)


3.3.3 Adding APT Local Mirror Sources

Instead of using HTTP or FTP packages mirrors, you may wish to modify /etc/apt/sources.list to use a mirror on a local disk (possibly NFS-mounted).

For example, your packages mirror may be under /var/ftp/debian/, and have main directories like this:

                
                  /var/ftp/debian/dists/woody/main/binary-i386/...
                  /var/ftp/debian/dists/woody/contrib/binary-i386/...

To use this with apt, add this line to your sources.list file:

                  deb file:/var/ftp/debian woody main contrib

Note that the `dists' is added implicitly, and the arguments after the release name are used to expand the path into multiple directories.

If your local mirror contains the non-US/* sections under /var/ftp/debian-non-US, also add the following line:

                 deb file:/var/ftp/debian-non-US woody/non-US main contrib

After adding your new sources, disable the previously existing "deb" lines in sources.list, by placing a hash sign (#) in front of them.


3.3.4 Adding APT CD-ROM Sources

First you need to install the latest version of apt and dpkg packages, as described above.

If you want to use CDs only, comment out the existing "deb" lines in /etc/apt/sources.list by placing a hash sign (#) in front of them.

Make sure there is a line in /etc/fstab that enables mounting your CD-ROM drive at the /cdrom mount point (the exact /cdrom mount point is required for apt-cdrom).For example, if /dev/hdc is your CD-ROM drive, /etc/fstab should contain a line like:

                  
                  /dev/hdc/cdrom auto defaults,noauto,ro0 0

Note that there must be no spaces between the words defaults,noauto,ro in the fourth field.

To verify it works, insert a CD and try running

      
                 mount /cdrom(this will mount the CD to the mount point)
                 ls -alF /cdrom (this should show the CD's root directory)
                 umount /cdrom(this will unmount the CD)

Next, run:

                 apt-cdrom add

for each Debian Binary CD-ROM you have, to add the data about each CD to APT's database.


3.4 Upgrading

Don't forget to mount all needed partitions (notably the root and /usr partitions) read-write, with a command like:

                 mount -o remount,rw /mountpoint

Assuming you have already configured apt's sources.list as explained above, run (as root):

                 apt-get update

This will resynchronize the package overview files from their sources, updating information about new and updated packages.

It is strongly recommended that you use the /usr/bin/script program to record a transcript of the upgrade session. Then if any problems develop, you will have a log of what happened, and if needed, can provide exact information in a bug report. To start the recording, type:

                 script -a ~/upgrade-to-woody.typescript

or similar. Do not put the typescript file in a temporary directory such as /tmp or /var/tmp (files in those directories may be deleted during the upgrade or during any restart).

It is important to upgrade apt, dpkg and debconf before you do the majority of the upgrade. Apt has been considerably improved since the previous releases. Debconf is an essential tool which is in extensive use in recent packages.

                 apt-get install dpkg apt debconf

This will install the newest versions of dpkg, apt and debconf, which are needed for the rest of the upgrade. It will also upgrade some necessary system libraries to the latest version.

Some people prefer to first rehearse the upgrade using

                 apt-get --fix-broken --show-upgraded --simulate dist-upgrade | pager

While this may be somewhat time consuming, it may avoid some surprises. This will tell you either what's wrong with your system (and how to solve it), or, most likely, what exactly will be done during the upgrade. Pay special attention to the packages that will be "REMOVED"; no essential packages should be listed there.

After you have verified that apt-get should work fine, run:

                 apt-get --fix-broken --show-upgraded dist-upgrade

This will perform a complete upgrade of the system, i.e. install the newest available versions of all packages, and resolve all possible dependency changes between packages in different releases. If necessary, it will install some new packages (usually new library versions, or renamed packages), and remove any conflicting obsoleted packages.

When upgrading from a set of CD-ROMs, you will be asked to insert specific CDs at several points during the upgrade. You might have to insert the same CD multiple times; this is due to inter-related packages that have been spread out over the CDs.

New versions of currently installed packages that cannot be upgraded without changing the install status of another package will be left at their current version (displayed as "held back"). Therefore, it may be necessary to use dpkg or dselect to remove and reinstall some broken packages or dependencies. Alternatively, apt-get dselect-upgrade may be used after apt-get -f dist-upgrade.(See the apt-get(8) man page.)

The --fix-broken (or just -f) option causes apt to attempt to correct a system with broken dependencies in place. apt does not allow broken package dependencies to exist on a system.


3.4.1 Possible Issues During or After Upgrade

Sometimes it's necessary to enable APT::Force-LoopBreak option in APT to be able to temporarily remove an essential package due to a Conflicts/Pre-Depends loop. apt-get will alert you of this and abort the upgrade. You can work around that by specifying -o APT::Force-LoopBreak=1 option on apt-get command line.

It is possible that a system's dependency structure can be so corrupt as to require manual intervention. Usually this means using dselect or

               
                 dpkg --remove packagename

to eliminate some of the offending packages, or

     
                 apt-get --fix-broken --show-upgraded install
                 dpkg --configure --pending

In extreme cases you might have to force re-installation with a command like

     
                 dpkg --install /path/to/packagename.deb

After fixing things up, you should be able to resume the upgrade by repeating the previously described dist-upgrade commands.

During the upgrade, you will be asked questions to configure or re-configure several packages. When you are asked if any file in the /etc/init.d or /etc/terminfo directories, or the /etc/manpath.config file should be replaced by the package maintainer's version, it's usually necessary to answer `yes' to ensure system consistency. You can always revert to the old versions, since they will be saved with a .dpkg-old extension.

If you're not sure what to do, write down the name of the package or file, and sort things out at a later time. You can search in the typescript file to review the information that was on the screen during the upgrade.


3.4.2 ToDo Before the Next Reboot

When apt-get dist-upgrade has finished, the "formal" upgrade is complete, but there are some other things that should be taken care of before the next reboot.

Most importantly, packages locales and util-linux may need to be installed. This can be done with:

                 apt-get install locales util-linux

If you were upgrading from Debian version 2.0 or earlier, this will remove the getty package, because getty is now in the util-linux package.

There probably are several more packages that need to be installed, that are not noticed by apt-get, because apt-get doesn't automatically select the packages that aren't depended on by other packages (e.g. all packages in Recommends: and Suggests: fields). These can quite easily be found when using dselect or another visual frontend. In dselect, pick the `apt' method in the [A]ccess screen (if you haven't already) and update the database with new packages information, using the [U]pdate option. After that, in the [S]elect screen, press `o', `o', `v' and Shift-d, and then search for the

               
                 --- Obsolete and local packages present on system ---

header. In that section, all such packages will be shown. For example, the old gimp package has been replaced by gimp1.2. You can either install the new package via dselect (which will then show a ``dependency conflict resolution'' screen indicating that the old packages should be removed), or by using:

      
                 apt-get install gimp1.2

which will remove the older versions at once (you might just need to confirm).

Another example, that is often not shown even in dselect, are the telnet and talk clients and servers, and the NFS server, which were split off from the old netstd package. You can install them with a command like:

                 apt-get install telnet telnetd talk talkd nfs-server

The same applies to manpages-dev, which was split off from manpages.

Please refer to the Release Notes document for previous releases of Debian GNU/Linux for more information about packages that were split in that release; go back and read Renamed Packages, Section 3.1.1 and Split Packages, Section 3.1.2 to see the list of packages split in this release.

If you were upgrading from Debian version 2.0 or earlier, and have the X Window System installed, give the following commands:

     
                apt-get remove xbase
                apt-get install xfonts-base xfonts-75dpi xfonts-100dpi xfonts-scalable

And if you don't want xdm to start at boot time ("X autostart"), also run:

              
                apt-get remove xdm

Read /usr/share/doc/xfree86-common/README.Debian-upgrade for more info on the upgrade of the X window system packages. This is relevant for users of all previous Debian releases. In short, you need to read it.

The configuration system for the kernel modules has changed since Debian GNU/Linux release 2.0. If you upgraded from Debian 2.0 or earlier, you must convert your system before the next reboot. Usually running update-modules force will be enough; nevertheless reading the update-modules(8) manual page is recommended.

If you were upgrading from a Debian GNU/Linux version 1.x (i.e. lower than 2.0), the old system was using the `libc5' library, while the upgraded system uses the `libc6' version. The new library has changed the format for the utmp and wtmp files; you can check this by trying the last command. To solve this, a reboot is necessary, but first copy the old file and empty the existing ones, with these commands:

                
                cd /var/log
                mv wtmp wtmp.libc5
                touch wtmp
                cd /var/run
                cp /dev/null utmp

Then reboot the system (note: this is not necessary for upgrades from Debian release 2.0 and higher!). Once rebooted, the last command will show correct data again.

Note that the Linux kernel was not upgraded by these procedures.You may wish to do so yourself, either by installing one of the kernel-image-* packages or by compiling a customized kernel from sources.

Debian GNU/Linux comes with a 2.2.20 which is in the 2.2 series, the older stable Linux kernel series. You may wish to use a 2.4 series kernel for better hardware support or improved performace. Booting the third cdrom will do this automagically or you can use install a prebuilt one.

                apt-get install kernel-image-2.4.18-{386,586tsc,686}

For the more adventurous, there is an easy way to compile your own custom kernel on Debian GNU/Linux. Install the kernel-package tool and read the documentation in /usr/share/doc/kernel-package.

Enjoy your new Debian GNU/Linux 3.0 system! :-)


[ previous ] [ Contents ] [ next ]
Release Notes for Debian GNU/Linux 3.0 (`woody'), Intel x86
$Id: release-notes.sgml,v 1.124 2002/04/15 20:33:01 kraai Exp $
Josip Rodin, Bob Hilliard, Adam Di Carlo, Anne Bezemer, Rob Bradford
debian-doc@lists.debian.org