Debian libc5 to libc6 Mini-HOWTO Scott K. Ellis, [EMAIL PROTECTED] $Id: libc5-libc6-Mini-HOWTO.sgml,v 2.9 1997/10/14 02:46:50 storm Exp $
1. Introduction 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 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 following locations: o <http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.html> o <http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.txt> o <http://www.gate.net/~storm/FAQ/libc5-libc6-Mini-HOWTO.sgml> o <ftp://ftp.debian.org/pub/debian/doc/libc5-libc6-Mini-HOWTO.txt> o <ftp://ftp.debian.org/pub/debian/doc/libc5-libc6-Mini- HOWTO.html.tar.gz> 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 PROTECTED] 2. Requirements 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 acceptable. o ldso_1.9.5-1 o libc6_2.0.4-1 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. o ncurses3.0_1.9.9e-2 o ncurses3.4_1.9.9g-3 o libreadline2_2.1-4 o libreadlineg2_2.1-4 o bash_2.01-2 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. o libg++272_2.7.2.5-2 o dpkg_1.4.0.19 o dpkg-dev_1.4.0.19 o dpkg-ftp_1.4.9 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. 3. Development 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 unpredictable results. 4. Concerns 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_2.7.2.8-0.1 when upgrading libc6. 4.2. 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. 4.3. /sbin/e2fsck 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 DATA. 4.4. /usr/bin/gencat 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.5. /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.6. 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 4.7. libc5_5.4.33-6 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 <ftp://ftp.gate.net/pub/users/storm/> -- Scott K. Ellis <[EMAIL PROTECTED]> http://www.gate.net/~storm/ -- TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to [EMAIL PROTECTED] . Trouble? e-mail to [EMAIL PROTECTED] .