Debian libc5 (bo/stable) to libc6 (hamm/unstable) upgrade Mini-HOWTO
Debian libc5 to libc6 Mini-HOWTO
Scott K. Ellis, firstname.lastname@example.org
$Id: libc5-libc6-Mini-HOWTO.sgml,v 2.10 1997/11/12 15:23:04
storm Exp $
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 Updated versions of software mentioned to latest version in
o Updated note about /etc/nsswitch.conf
o Note about vthunk change with glibc 2.0.5c.
o Seperated bash upgrade from required upgrade.
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.
1.2. Finding updates
The latest version of this Mini-HOWTO should be available in the
1.3. Copyright and Disclaimer
This Mini-HOWTO is covered by the copyright of and may be further
redistibuted under the same terms as other HOWTOs from the LDP.
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
2.2. Upgrading bash
While you can install many libc6 package with just ldso and libc6, you
will probably want to upgrade a few other packages as well. Since
bash-2.01 fixes problems experienced with Netscape and helper
applications, it is one of the more likely packages to need updated.
However, it is also one of the few packages that is capable of
rendering your system useless if upgraded incorrectly. Install the
packages below one at a time in exactly the order listed.
IMPORTANT: If you use dselect to do the initial upgrade of these
packages, there is a very good possibility of breaking bash and
therefore making your system unusable.
2.3. 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.4. 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 to libc6_2.0.5c-0.1
Due to a change in the vthunk handling code in libc6 and libg++, you
must upgrade to at least libg++272_188.8.131.52-0.1 when upgrading libc6.
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-7 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. You should also change the
networks line from files dns to files. This will prevent network
configuation programs from attempting to resolve hostnames.
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. You must have dpkg-ftp_1.4.9 or
greater to update your machine using dpkg-ftp. 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
Debian 1.3.1r4 included an update to libc5 which conflicts with libc6.
The conflict was added because of problems with locales and the format
of the utmp/wtmp files. An older version of libc5 which doesn't
conflict, as well as the development librarys, is saved at
Scott K. Ellis <firstname.lastname@example.org> http://www.gate.net/~storm/
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
email@example.com . Trouble?
e-mail to firstname.lastname@example.org .