Debian libc5 to libc6 Mini-HOWTO (regular posting)
Debian libc5 to libc6 Mini-HOWTO
Scott K. Ellis, firstname.lastname@example.org
$Id: libc5-libc6-Mini-HOWTO.sgml,v 2.6 1997/09/27 16:41:16
storm Exp storm $
The Debian project is currently in the process of putting together the
next release of the Debian system. This version will utilize the new
libc6, a replacement for the prior libc5 which includes many
enhancements and brings the Linux C library back into sync with the
GNU project. We are doing this in a way to allow you to continue to
utilize your older software by providing development and operating
environments for both C libraries. However, all packages in the new
release will be linked with the new C library. This has made it
slightly more difficult to install packages from the unstable branch
of our development tree into a working system. There is a slight
possibility of making your system unbootable in the process, this
guide is intended to help you avoid such problems.
1.1. Recent Changes:
o Note on how to upgrade via dpkg-ftp.
o Notes about NIS and libgdbm (perl) issues.
o Note about libc6-based e2fsck being bad for large partitions.
o Reorganized slightly and added more information about possible
o Moved ldso above libc6, incase they have an ancient ldso.
o Raised versions required for bash and libreadline(g)2 to the
official maintainer versions to avoid possible version mismatch
o Added a note saying that allowing dselect to upgrade the listed
packages might result in an unbootable system.
o Added ncurses3.0 to list of packages after realizing that
libreadline2 depended on it. This may not be necessary, as
everyone should already have ncurses3.0 installed.
1.2. Finding updates
The latest version of this Mini-HOWTO in HTML format should be located
at <http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html>. The
SGML source should also be available as libc5-libc6-Mini-HOWTO.sgml in
the same directory.
As always, this document comes with NO WARRANTY. These comments are
based on my personal experience and experimentation. While this
worked for me off a freshly installed v1.3.1 system, you mileage may
vary. Please send any comments or corrections to email@example.com.
2.1. Minimum Requirements
The minimum list of packages to install to be able to run unstable-
branch packages is below. Install these packages one at a time in
exactly the order listed. When versions are mentioned, that is a
minimum suggested version, any later version should also be
IMPORTANT: If you use dselect to do the initial upgrade to these
packages, there is a very good possibility of breaking bash and
therefore making your system unusable.
2.2. Other Suggested Packages
These packages are not absolutely essential for the functioning of the
packages in unstable, but are still very useful. The new dpkg-dev may
be necessary for unpacking source archives from unstable, and the new
dpkg-ftp is needed if you wish to use the ftp method of dselect to
upgrade your system to the unstable distribution.
2.3. Other Possible Conflicts
Since perl is used in many package installation scripts, problems with
with library upgrades may temporarily break perl, which may break
other package installations. To be safe, install the new libgdbm1 and
then the new libgdbmg1 packages by hand before upgrading perl.
If you wish to do libc6 development, you should first purge all the
'-dev' packages on your system, the new development system will use
packages with the suffix '-dev' for libc6 development and '-altdev'
for libc5 development. You will wish to install the latest libc5
package, and altgcc if you wish continue to do libc5 development as
well. Some libraries haven't been recompiled for the new libc6 yet,
check that all your vital libraries are available before upgrading.
Linking libc5-based libraries with libc6-based programs will have
4.1. Upgrading bash
The package bash_2.01-1 requires that you have libreadlineg2_2.1-3 or
greater installed. If you install the new bash package before
installing the new libreadlineg2, you will break your system.
bash_2.01-2 has the appropriate predepends lines, but may not yet be
to your mirror.
The e2fsck program in e2fsprogs_1.10-4 has a bug in it which will
cause it to destroy data on partitions above 2GB in size. The version
in e2fsprogs_1.10-5 has fixed this bug. IMPORTANT: If you run the
older libc6-based e2fsck on a 2 GB or greater partition, YOU WILL LOSE
Note also that both the man-db and the libc6-dev packages currently
include /usr/bin/gencat. The version of gencat in libc6-dev has been
reported to cause segfault problems with man-db, you may wish to
reinstall man-db after libc6-dev if you experience these problems.
4.4. /etc/nsswitch.conf (NIS/YP)
Handling of NIS/YP has changed slightly with libc6. If you are using
NIS, you will probably need to change /etc/nsswitch.conf, the compat
option will preserve the libc5 behavior.
4.5. Upgrading to unstable by FTP
The directory structure of the ftp site has been slightly modified,
placing the contrib and non-free sections of the archive alongside the
main section, to avoid contrib and non-free getting out of sync with
earlier portions of the archives. If you are updating your machine
via ftp, the proper information to give dpkg-ftp is:
o Enter debian directory: /debian
o Enter space seperated list of distributions to get:
dists/unstable/main dists/unstable/non-free dists/unstable/contrib
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
Trouble? e-mail to firstname.lastname@example.org .