Release Notes for Debian GNU/Linux 2.2 (`potato'), Intel x86 ------------------------------------------------------------ Josip Rodin, Bob Hilliard, Adam Di Carlo, Anne Bezemer $Id: release-notes.sgml,v 1.48 2000/08/12 03:56:12 aph Exp $ ------------------------------------------------------------------------------- ------------------------------------------------------------------------------- Contents -------- 1. What's New in Debian GNU/Linux 2.2 1.1. What's New in the Installation System? 1.2. What's New in the Distribution? 2. New installations 3. Upgrades from previous releases 3.1. Detailed changes to the system 3.2. Necessary actions prior to the upgrade 3.3. Upgrade process ------------------------------------------------------------------------------- 1. What's New in Debian GNU/Linux 2.2 ------------------------------------- [The most recent version of this document is always available at http://www.debian.org/releases/2.2/i386/release-notes/. If your version is more than a month old, you might wish to download the latest version.] Debian's previous release, Debian GNU/Linux 2.1, included four officially supported architectures: Intel x86 (``i386''), Motorola 680x0 (``m68k''), Alpha (``alpha''), and SPARC (``sparc''). In this new release, we have introduced two additional architectures: PowerPC (``powerpc'') and ARM (``arm''). You can read more about port status, and port-specific information for your architecture at the Debian port web pages (http://www.debian.org/ports/i386). Debian GNU/Linux 2.2 for the Intel x86 architecture ships with kernel version 2.2.17. The 2.2 kernel series are a new kernel generation introducing several valuable changes both in the kernel and in other programs based on kernel features, along with a whole slew of new hardware drivers and bug fixes for existing drivers. 1.1. What's New in the Installation System? ------------------------------------------- The `boot-floppies' and the `debian-cd' packages include a number of improvements over Debian 2.1. There have been notable improvements in network installation support, including DHCP configuration support. More architectures support serial console installation. The old profiles and tasks selection system has been replaced by Debian "meta-packages" (packages whose only purpose is to depend on other packages) and an interface called `tasksel'. This means that tasks can be used at any time, not just installation time, and can be retained across upgrades. Post-reboot configuration, which used to be performed by a batch of shell scripts, are now performed by the `base-config' package, which uses `debconf'. It is expected that for the next major Debian release, `debconf' will be the main interface users interact with during installation and configuration. Kernel images are available in various "flavors". These flavors each support a different set of hardware. The flavors available in Debian GNU/Linux 2.2 for Intel x86 are: `vanilla' The standard kernel package available in Debian. This includes almost all drivers supported by Linux built as modules. This includes drivers for network devices, SCSI devices, sound cards, Video4Linux devices, etc. The `vanilla' flavor includes one rescue, one root and three driver disks. `udma66' Very similar to `vanilla', except it includes Andre Hedrick's IDE patches to support UDMA66 devices. `compact' Like `vanilla', but with many of the less-frequently-use drivers removed (sound, v4l, etc). In addition, it has built in support for several popular PCI ethernet devices -- NE2000, 3COM 3c905, Tulip, Via-Rhine and Intel EtherExpress Pro100. These built in drivers allow you to take full advantage of the Debian installer's net install feature to install the driver and/or base system over the network so that only the root and rescue disks need to be made. Finally, `compact' also supports several common RAID controllers: DAC960, and Compaq's SMART2 RAID controllers. The `compact' flavor includes one rescue, one root and one driver disks. `idepci' Kernel that supports only IDE and PCI devices (and a very small number of ISA devices). This kernel should be used if the SCSI drivers in the other flavors cause your system to hang on startup (probably because of resource conflicts, or a misbehaving driver/card in your system.) The `idepci' flavor also has a built-in ide-floppy driver so that you can install from LS120 or ZIP devices. The kernel config files for these flavors can be found in their respective directories in a file named "kernel-config". 1.2. What's New in the Distribution? ------------------------------------ All Debian architectures are now based on the new GNU C Library release 2.1.2. Although the new glibc made the new packages uninstallable on the previous release, it did retain backwards binary compatibility with old packages compiled for glibc 2.0 from Debian GNU/Linux releases 2.1 and 2.0, and almost complete source compatibility with those older sources. In this release, most of the basic system utilities have started using PAM, the Pluggable Authentication Modules, which provides system administrators with a powerful method of controlling system access and methods of authentication. PAM allows a single point of administrating authentication and account management. If you want to change your authentication programs to a different scheme (e.g. OPIE, Kerberos, etc..) you only need to modify the PAM configuration files for those programs instead of recompiling the program itself. The 2.2 release is the first version of Debian that includes complete support for our Japanese users, who had to use add-on Debian JP packages up to now, to get multi-byte character support. Additionally, we have increased the level of internationalization, and improved support for most non-Latin languages. The number of packages our main distribution includes is now around 3950, increasing the number of packages by 50%, as usual. The 2.2 release also features several important program and library upgrades, such as XFree86 3.3.6, Perl 5.005.03, GCC 2.95.2, PAM 0.72, GTK+/GLib 1.2.7, GNOME 1.0.56, ncurses 5.0, teTeX 1.0.6, XEmacs 21.1.8, S-Lang 1.3.9, GGI 1.99.2, and many more. As with the upgrade from release 2.0 to 2.1, most changes from 2.1 to 2.2 are incremental. A lot of new packages and new versions of old packages are included, along with a bounty of new features and bug fixes. The same dpkg+apt packaging system is still used for performing the upgrades, and we have made every effort to make the transition as painless and as flawless as possible. `apt', now at version 0.3.19, which is used in conjunction with `dpkg', now at version 1.6.13, is the preferred package installation tool, as it has support for several different package sources (CD-ROMs and other removable disks, local or network-mounted hard drives, or remote Internet FTP or HTTP sites). It can be used either from the command-line as `apt-get', or as a package acquisition (download) method in `dselect', to install new or upgrade existing binary (or source) packages. The Official CD-ROM distribution ships as _three_ binary package CD-ROMs. The first binary CD contains parts of the "main" section, but it can include the "non-US/main" section, too. The other two binary CDs contain the rest of "main", and "contrib". If your vendor adds (portions of) "non-free" and/or "non-US/non-free" sections to the CD set, there may be additional CDs. The first and second CD-ROM disks from the set are bootable, and are usually used for starting new installations. The first CD uses the `vanilla' kernel flavor. If there are problems booting from this CD, you can use the second CD which uses the `compact' flavor. All of the CDs are self-contained, meaning you can insert any one of them and operate with its contents, without needing to meddle with others. `apt-cdrom' is used to manage multiple CDs, either through the command line interface, `apt-cdrom', or the `apt' access method for `dselect'. Likewise there are _three_ source CDs, the first of which may optioanlly include the non-US/main source. (Note: some sites my carry both US & non-US #1 CDs, making a total of 4) ------------------------------------------------------------------------------- 2. New installations -------------------- If you are making a new installation of Debian, you should read the installation manual, which is available on the Official CD at: /dists/potato/main/disks-i386/current/install.txt (or .html) Or on the Internet at: http://www.debian.org/releases/2.2/i386/install The Debian installation system, which is called the `boot-floppies' (even though it is for more than just floppies), has been further streamlined and upgraded for users' convenience. ------------------------------------------------------------------------------- 3. Upgrades from previous releases ---------------------------------- 3.1. Detailed changes to the system ----------------------------------- The upgrade procedures described below can be used to upgrade any previous Debian release to 2.2 at once; you should not have to upgrade separately to every intermediate release. Note however, that upgrades from releases 2.0 and earlier to 2.2 have not been tested extensively, and are therefore not supported. Backwards source and binary compatibility in GNU LibC 2.1 means most programs from the previous release will run on the new release (but not the other way around). All packages in Debian GNU/Linux 2.2 have been set up to run in the new environment, of course, and it will be possible to re-compile most programs on the new release without changes. However, there are always a few exceptions to the rule, so some of your local programs may need to be modified and/or recompiled on the new glibc to run properly. When run under kernel 2.2 and glibc 2.1, system will automatically mount an additional `devpts' virtual drive, to support Unix98 PTYs, and some of our daemons (Unix servers) will automatically switch to using those new devices (`/dev/pts/*' instead of `/dev/ttyp*'). With kernel 2.2.x, the PC printer devices start from lp0 instead of lp1 as with kernels 2.0.x, so you will want to update your printcap and other configuration files to use that (`/dev/lp0' instead of `/dev/lp1', `/dev/lp1' instead of `/dev/lp2' and so on). The transition to using new kernel went quite smoothly, mainly because we almost completely prepared the 2.1 release for running a 2.2 kernel. Some issues still remain, mainly related to the network: * Firewall manipulation utility `ipfwadm' has been replaced with `ipchains'. The upgrade of the `netbase' will prompt you to set up symlinks to a wrapper script so that your firewall remains functioning; you can also read `/usr/share/doc/netbase/ipchains-HOWTO.txt.gz' and properly convert your firewall setup to `ipchains'. * The `/etc/init.d/network' script, as set up by the old Debian installation procedures, prints error messages with the new kernel; this can be fixed by adding proper `netmask' and `dev' options to `route' invocations in that file. * Unfortunately, this kernel upgrade could also mean problems for those users whose machines have very small amounts of RAM. You should read the kernel's `Documentation/Changes' file for more information on upgrading software to run with the new kernel. Upgrades to PAM enabled applications have been made as seamless and integrated as possible. For most instances, the new configurations will mimic that of your old pre-PAM configurations. However, not every case can be accounted for. If changes need to be made, you can install the `libpam-doc' package, which contains documentation on every aspect of the PAM library, even tips on modifying your existing non-PAM apps to support the new authentication model. One major part of the PAM upgrade was merging `secure-su' into the main login package. The default `su' provided by `shellutils' is now provided by the `login' package so that PAM integration was more complete and system wide. If you used to use the default `su', then you should not notice any changes with the new version. However, users of the obsolete `secure-su' package may have to check their configurations to ensure that the new PAM setup is compatible. You may notice that this release includes two versions of Perl: 5.004 (in `perl-5.004*' packages) and 5.005 (in `perl-5.005*' packages). We highly recommend using the latter, newer version, and removing the old version, which is kept only for compatibility, as a convenience to programmers.[1] If you have/use any Perl modules from the new `lib*-perl' packages in your scripts, you will have to set the `/usr/bin/perl' symlink (using `update-alternatives') to point to Perl 5.005, otherwise you will experience problems. [1] This can be accomplished by installing the perl-5.005 package, using e.g. `apt-get install perl-5.005' Please note that the Debian non-US archive has been slightly reorganized in order to support separation between free and non-free software. If you already used `apt' to access it, you will need to change your `/etc/apt/sources.list' lines for non-US to this form: deb http://non-US.debian.org/debian-non-US potato/non-US main contrib non-free Previous versions of `inetd' (provided by the `netbase' package) had a bug in that when `inetd' was stopped, an existing connection to some of the internal services could stop `inetd' from restarting. This bug has been fixed in the current `netbase', but older version of it are still vulnerable. If you find `inetd' isn't restarting properly, look for any existing `inetd' processes that are still running, or processes such as "-discard" or "-echo". If you have the `psmisc' package installed, running: sed 's/[[:space:]][[:space:]]*/ /g' /etc/inetd.conf | grep '^ *[^#]' | cut -d" " -f1,3 | while read serv type; do fuser -n $type $serv; done as root will tell you which processes are using ports `inetd' is interested in. Users of smail MTA will notice that release 2.2 doesn't ship that package anymore, due to serious bugs it had during our test cycles. Updated smail packages may still be found in the unstable distribution, or at http://www.fs.tum.de/~bunk/smail.html. The new XFree86 and other `xserver-*' packages introduced in this release, compared to those in the previous release, 2.1, may very well contain better support for your graphics hardware, especially drivers for newer graphics cards such as many 3D accelerator cards. If you don't know exactly which X server package to choose, try the `xviddetect' program (from `xviddetect' package), that will output the name of the needed X server, based on information found about your PCI/AGP bus. Users of the Intel i810 chipset should be aware that, to properly function, the X server requires a Linux kernel module that does not ship with the Linux kernel sources. The source code to this module, and instructions for compiling it and using it, may be found at the X Strike Force (http://www.debian.org/~branden/) page. If the X server you are using refers to the upgrading host for `xfs' font services, it will lose its connection to the font server when `xfs' is stopped. This is not fatal, but can be annoying. Note: similar things may happen for other daemons, so be prepared. 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/remove the old one. ada-rm -> gnat-doc [1] alsa-modules -> alsa-base alsalib -> libasound0.4 ax25-utils -> libax25 blt8.0-unoff -> blt8.0 c-client-dev -> libc-client4.7-dev console-tools-data -> console-tools [2] cti-ifhp -> ifhp cwnn -> freewnn-cserver cwnn-dev -> freewnn-cserver-dev data-dumper -> perl-5.005-doc dhcp-beta -> dhcp dhcp-client-beta -> dhcp-client dhcp-relay-beta -> dhcp-relay egcc -> gcc egcs-docs -> gcc-doc emacspeak-bs-tcl, emacspeak-dt, emacspeak-dt-tcl -> emacspeak-ss eterm-backgrounds -> eterm fte-cfgdocs -> fte-docs fvwm -> fvwm1 fvwm2 -> fvwm gltt2 -> libgltt2 gltt2-dev -> libgltt2-dev gmp2 -> libgmp2 gmp2-dev -> libgmp2-dev gnome-gnobots -> gnome-gnobots2 gnome-gnothello -> gnome-iagno gnome-gyahtzee -> gnome-gtali gsl -> libgsl0 gsl-dev -> libgsl0-dev gstep-base -> gstep-base0 gstep-base-dev -> gstep-base0-dev gstep-extensions -> gstep-extensions0 gstep-gui -> gstep-gui0 gstep-gui-dev -> gstep-gui0-dev gstep-guile -> gstep-guile0 gtkicq -> gnomeicu intlfonts-arabic -> xfonts-intl-arabic intlfonts-asian -> xfonts-intl-asian intlfonts-chinese -> xfonts-intl-chinese intlfonts-chinese-big -> xfonts-intl-chinese-big intlfonts-european -> xfonts-intl-european intlfonts-japanese -> xfonts-intl-japanese intlfonts-japanese-big -> xfonts-intl-japanese-big intlfonts-phonetic -> xfonts-intl-phonetic ivtools -> ivtools-unidraw kwnn -> freewnn-kserver kwnn-dev -> freewnn-kserver-dev lam -> lam-runtime lesstifg-dbg -> lesstif-dbg lesstifg-dev -> lesstif-dev libapache-mod-auth-sys -> apache-common libapache-mod-put -> apache-common libatalk1 -> netatalk libatalk1-dev -> netatalk-dev libc6-doc -> glibc-doc libdatecalc-perl -> libdate-calc-perl libg++2.8.2-dev -> libg++2.8.1.3-dev libgg0 -> libgii0 libgg0-dev -> libgii0-dev libggi1 -> libgii0, libggi2 libgnome0 -> libgnomesupport0 libjpegg-dev -> libjpeg62-dev liblockdev0-perl -> liblockdev1-perl liblockdev0g-dbg -> liblockdev1-dbg liblockdev0g-dev -> liblockdev1-dev libmd5-perl -> libdigest-md5-perl libpam0g-util -> libpam-runtime libwcsmbs, wcsmbs-locale-ja -> locale-ja libwine0.0.971116 -> libwine libxml0 -> libxml1 maplay -> maplay3 mysql-base -> mysql-gpl-client, mysql-client mysql-dev -> libmysqlclient6-dev newt0.25-dev -> libnewt-dev open -> console-tools palmpython -> pyrite perl -> perl5 perl-base -> perl5-base popt -> libpopt0, libpopt-dev ppp-pam -> ppp [3] ptx -> textutils python-bsddb, python-curses, python-misc, python-net -> python-base [4] python-mysql -> python-mysqldb python-pil -> python-imaging r-pdl -> pdl sgmlspm -> libsgmls-perl smbfsx -> smbfs sorcerer -> pccts t1lib0-bin -> t1lib-bin t1lib0-dev -> t1lib-dev tcd -> gnome-media timezones -> libc6 [5] tm -> wemi toshiba-fan, toshiba-hotkey -> toshutils v-bin -> libv-bin v-dbg -> libv-dbg v-dev, vm-dev -> libv-dev v1g -> libv1.22 vnc-doc -> xvncviewer, vncserver wcsmbs-locale-ko -> locale-ko wnn -> freewnn-jserver wnn-common -> freewnn-common wnn-dev -> freewnn-jserver-dev www-search -> libwww-search-perl wxxt1 -> libwxxt1 wxxt1-dev -> libwxxt-dev xfntbig5p-cmex24m -> xfonts-cmex-big5p xfntil2 -> xfonts-biznet-iso-8859-2-{base,75dpi,100dpi} xntp3-doc -> ntp-doc xpm-bin -> xpm4g-dev [6] [1] The Ada reference manual was merged into gnat-doc. [2] The `console-tools-data' package was merged back into console-tools. [3] The ppp package with PAM support was merged back into ppp. [4] These packages were merged back into python-base. [5] The `timezones' package was merged back into libc6. [6] The `xpm-bin' package was merged back into xpm4g-dev. Although we have made every effort to complete this list, it may still not be exhaustive. 3.1.2. Split packages --------------------- Between releases 2.1 (`slink') and 2.2 (`potato'), 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 more packages to restore the original functionality. Failing that, check the changelog for the package, which can be found in `/usr/doc//changelog.Debian.gz'. The following is a list of packages that have been split (this list may not be complete): gmc: mc gmc mc-common [1] libpgtcl: libpgtcl pgaccess mozilla: mozilla libnspr3 libnspr3-dev netbase: netbase tcpd libwrap0 libwrap0-dev netstd: bootp bootparamd bootpc finger fingerd fping ftp ftpd icmpinfo pidentd rdate rdist routed rsh-client rsh-server ruptime rusers rusersd rwall rwalld rwho rwhod tftp tftpd traceroute wdsetup [2] perl-base: perl-base perl-5.004-base perl-5.005-base [3] perl: perl-5.004 perl-5.004-doc perl-5.005 perl-5.005-doc [4] postgresql: postgresql postgresql-client postgresql-test vim: vim vim-gtk [5] [1] Important thing to notice is that gmc now contains only the GNOME version, mc contains only the console version, and they do not conflict. [2] After upgrade of netstd package, and all the packages it depends on, you should remove it. [3] Upgrading the perl-base package will install the essential Perl distribution, version 5.004. To get the same functionality but with new upstream version of Perl, you should install perl-5.005-base package, after which you may remove perl-5.004-base package. [4] Upgrading the perl package will install the full Perl distribution, version 5.004. To get the same functionality but with new upstream version of Perl, you should install perl-5.005 and perl-5.005-doc package, after which you may remove perl-5.004 and perl-5.004-doc packages. [5] Vim used to provide a binary for console and X (GTK+). It has now been split to allow for non-X installs. 3.2. Necessary actions prior to 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 save 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. Distribution upgrade should be done either locally from a textmode virtual console (or a directly connected serial terminal), or remotely via an `ssh' link. You should _not_ do the 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. 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. This can be done with dpkg -l | pager or dpkg --get-selections > filename (and then inspect `filename'), or it can be done in `dselect'. Any package installation operation must be run with superuser privileges, so either login as root or use `su' or `sudo' to gain necessary access rights. It is strongly recommended that you use `/usr/bin/script' program to record a transcript of the upgrade session. [1] Then if any problems develop, you can have a log of what happened, and if needed, provide exact information in a bug report. To start the recording, type: script -a /upgrade-2.2.typescript or similar. Remember not to put the typescript file on a temporary directory (such as `/tmp' or `/var/tmp'). [1] In fact, it is a good idea to use `script' to record any `dselect' session, and anything else you do that it is desirable to record. 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. 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 doing: dpkg --get-selections > filename editing `filename' to change "hold" to "install" (or vice versa), and then, with root permissions, doing dpkg --set-selections < filename It might be a good idea to put `ssh' on `Hold' (if it's installed), since otherwise it will be replaced by OpenSSH (the new `ssh' package) which still has a slightly incompatible configuration file, that can sometimes cause `sshd' not to start after the upgrade. By putting it on hold you assure that your system will continue to be reachable; you can resolve things later, or select the `ssh-nonfree' package for installation, which is the completely compatible, but still non-free, version of ssh. (Note: even when upgrading without `Hold', existing connections will not be broken.) Please note that the `ssh' package in this release disables root logins by default. If you rely on this feature for remote access to your system you should ensure that `PermitRootLogin' option in `/etc/ssh/sshd_config' is set to `yes' after upgrade (To ensure dpkg never updates the file to match new defaults, you can simply modify the file locally. Adding a blank line is enough.) It is important that the `/etc/rcS.d' directory exists prior to the upgrade; the installation of the `libc6' package will fail otherwise. Don't forget to mount all needed partitions (notably the root and `/usr' partitions) read-write, with a command like: mount -o remount,rw / 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. The recommended method of upgrading is by using `apt-get' directly, as described in the next section. APT is the next generation of Debian's packaging tools, and it enables smooth upgrades and easy installations. You should _not_ be doing any major package upgrades with default access methods 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 far less tested and therefore unsupported by Debian. 3.3. Upgrade process -------------------- If you want to upgrade using CD-ROMs, or if you are upgrading from a 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/potato/main/upgrade-i386/ directory at your Debian mirror, or the `upgrade/' directory on the first CD-ROM from your Debian 2.2 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 (any point release) 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 (it is not by default), 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. 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 FTP/HTTP mirrors). 3.3.1. Setting up for an upgrade over the Internet -------------------------------------------------- The default configuration is set up for installation from our main 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. In that case, first comment out the existing "`deb'" lines in `sources.list', by placing a hash sign (`#') in front of them. Debian FTP or HTTP mirror addresses can be found at http://www.debian.org/distrib/ftplist (look at the "Full list of mirrors" section). For example, your closest Debian mirror is `ftp://alea.iacta.est/debian/' When inspecting that mirror with a web browser or FTP program, you will notice that the main directories are like this: ftp://alea.iacta.est/debian/dists/potato/main/binary-i386/... ftp://alea.iacta.est/debian/dists/potato/contrib/binary-i386/... To use this mirror with `apt', you add this line to your `sources.list' file: deb ftp://alea.iacta.est/debian potato main contrib Note that the ``dists'' is added implicitly, and the arguments after the third are used to expand the path into multiple directories. If the mirror also contains the non-US/* sections under ftp://alea.iacta.est/debian/debian-non-US, also add the following line: deb ftp://alea.iacta.est/debian/debian-non-US potato/non-US main contrib Any package needed for installation that is fetched from the network is stored in the `/var/cache/apt' (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 slink's `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.2. Setting up for an upgrade from a local mirror ---------------------------------------------------- Instead of using FTP or HTTP packages mirrors, you may wish to modify `/etc/apt/sources.list' to use a mirror on a local disk (possibly NFS-mounted). In that case, first comment out the existing "`deb'" lines in `sources.list', by placing a hash sign (`#') in front of them. For example, your packages mirror may be under `/var/ftp/debian/', and have main directories like this: /var/ftp/debian/dists/potato/main/binary-i386/... /var/ftp/debian/dists/potato/contrib/binary-i386/... To use this with `apt', you add this line to your `sources.list' file: deb file:/var/ftp/debian potato main contrib Note that the ``dists'' is added implicitly, and the arguments after the third 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 potato/non-US main contrib 3.3.3. Setting up for an upgrade from CD-ROMs --------------------------------------------- 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,ro 0 0 Note that there may 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.3.4. Upgrading ---------------- Once you have configured `apt''s `sources.list', run (as root): apt-get update This will resynchronize the package overview files from their sources, updating information about new and updated packages. Some people prefer to run apt-get --fix-broken --show-upgraded --simulate dist-upgrade | pager in order to see what will happen. 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.3.5. 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 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 these things, you should be able to resume the upgrade using the previously described `dist-upgrade' commands. During the upgrade, you will be asked questions to configure or re-configure several packages. When/if 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 on a later time. You can search in the typescript to re-view the information that was on the screen during the upgrade. When `apt-get dist-upgrade' is done, the "formal" upgrade is finished, 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-smotif' and `gimp-dmotif' packages were replaced by `gimp' in Debian GNU/Linux 2.1. 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 gimp 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 Debian GNU/Linux 2.1 for more information about those packages that were split in that release; go back and read Section 3.1.1, `Renamed packages' and Section 3.1.2, `Split packages' 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 You can read `/usr/doc/xfree86-common/README.Debian-upgrade' for more info, but you probably don't have to do anything else. 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. Then, 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 a 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. Enjoy your new Debian GNU/Linux 2.2 system! :-) ------------------------------------------------------------------------------- Release Notes for Debian GNU/Linux 2.2 (`potato'), Intel x86 Josip Rodin, Bob Hilliard, Adam Di Carlo, Anne Bezemer $Id: release-notes.sgml,v 1.48 2000/08/12 03:56:12 aph Exp $