[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#419926: Packaging bug in libc6

Package: libc6
Version: 2.3.6.ds1-13

It appears that the libc6 package should depend on linux kernel >=
2.4.1, but does not. Instead, an error is reported during the
installation attempt. Since the dependency is unknown to APT, it doesn't
attempt to find a solution (such as upgrading the kernel as well), nor
does it refuse to install (which would at least save the system). The
result is that the APT database gets hosed and the easiest recovery
seems to be to do a fresh re-install with a 2.4 kernel (which wasn't too
hard in my case, but is clearly undesireable).

My suggestion is just to add the dependency rule.

Here's the long report though...

nenya:~# apt-get install libc6
Reading Package Lists... Done
Building Dependency Tree... Done
Suggested packages:
The following packages will be upgraded:
1 upgraded, 0 newly installed, 0 to remove and 214 not upgraded.
3 not fully installed or removed.
Need to get 0B/4700kB of archives.
After unpacking 4702kB disk space will be freed.
(Reading database ... 26218 files and directories currently installed.)
Preparing to replace libc6 2.3.2.ds1-22sarge5 (using
.../libc6_2.3.6.ds1-13_i386.deb) ...

Name Service Switch update in the C Library: pre-installation question.

Running services and programs that are using NSS need to be restarted,
otherwise they might not be able to do lookup or authentication any more.
The installation process is able to restart some services (such as ssh or
telnetd), but other programs cannot be restarted automatically.  One such
program that needs manual stopping and restart after the glibc upgrade by
yourself is xdm - because automatic restart might disconnect your active
X11 sessions.

Known packages that need to be stopped before the glibc upgrade are:
        xdm kdm gdm postgresql xscreensaver

This script did not detect any installed services which need to be

If you want to interrupt the upgrade now and continue later, please
answer No to the question below.

Do you want to upgrade glibc now? [Y/n]

WARNING: This version of glibc requires that you be running
kernel version 2.4.1 or later. Earlier kernels contained
bugs that may render the system unusable if a modern version
of glibc is installed.
dpkg: error processing
/var/cache/apt/archives/libc6_2.3.6.ds1-13_i386.deb (--unpack):
 subprocess pre-installation script returned error exit status 1
Errors were encountered while processing:
E: Sub-process /usr/bin/dpkg returned an error code (1)

I had a 2.2 kernel image installed on this machine from an earlier
Debian Woody installation that I dist-upgraded to Sarge, but
apparently that does not upgrade the kernel-image:

nenya:~# uname -a
Linux nenya 2.2.20 #1 Sat Apr 20 11:45:28 EST 2002 i686 GNU/Linux

The problem arose when I tried to upgrade again to Etch (actually I
didn't notice that stable had changed).

Attempting to upgrade the kernel results in a dependency on packages
which in turn depend on the newer libc6, so I have a dependency loop and
no APT resolution!

If libc6 depended explicitly on linux/kernel 2.4.1+, then either apt-get
should be able to find a working upgrade path, or it should at least
give an error at the apt-get level before attempting the upgrade.

A related problem, for example, is that libc6-dev is hung, because it
depends on libc6, but was installed anyway because APT didn't know any

nenya:~# apt-get check
Reading Package Lists... Done
Building Dependency Tree... Done
You might want to run `apt-get -f install' to correct these.
The following packages have unmet dependencies:
  libc6-dev: Depends: libc6 (= 2.3.6.ds1-13) but 2.3.2.ds1-22sarge5 is
  locales: Depends: glibc-2.3.6.ds1-1
E: Unmet dependencies. Try using -f.


nenya:~# apt-get remove libc6-dev
Reading Package Lists... Done
Building Dependency Tree... Done
You might want to run `apt-get -f install' to correct these:
The following packages have unmet dependencies:
  libstdc++2.10-dev: Depends: libc6-dev (>= 2.1.95) but it is not going
to be installed
  libstdc++5-3.3-dev: Depends: libc6-dev (>= 2.3.2.ds1-16) but it is not
going to be installed
  locales: Depends: glibc-2.3.6.ds1-1
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or
specify a solution).

But you knew that, because practically everything depends on libc6! :-)

I'm assuming that if libc6 explicitly required kernel 2.4.1+ that
apt-get would produce the error before attempting the libc6 installation
(thus prevent various package installation hang-ups), or (better) find a
compatible upgrade path. Also, using apt-cache showpkg libc6 does not
appear to show the kernel dependency.

Also, this apparently hosed LILO for some reason, because I got the
dreaded "LI" screen when I tried to reboot. I'm not sure why that part
happened though.


Terry Hancock (hancock@AnansiSpaceworks.com)
Anansi Spaceworks http://www.AnansiSpaceworks.com

Reply to: