2

I have a Debian Etch (4.0) system, currently still running kernel 2.4.27-2-386. I'd like to upgrade it to Lenny, but I'm running into what seems to be a circular dependency between the kernel and libc6.

A straightforward upgrade (update sources.list, apt-get update, apt-get dist-upgrade) fails when it tries to upgrade libc6:

WARNING: POSIX threads library NPTL requires kernel version
2.6.8 or later. If you use a kernel 2.4, please upgrade it
before installing glibc.

The installation of a 2.6 kernel _could_ ask you to install a new libc
first, this is NOT a bug, and should *NOT* be reported. In that case,
please add etch sources to your /etc/apt/sources.list and run:
  apt-get install -t etch linux-image-2.6
Then reboot into this new kernel, and proceed with your upgrade

However, adding Etch back into sources.list ("deb-src http://archive.debian.org/debian etch main contrib non-free"), apt-get update, and then running "apt-get install -t etch linux-image-2.6" prompts me to choose a more specific package. So I choose one: "sudo apt-get install -t etch linux-image-2.6.18-6-486"

But this throws an error about unmet dependencies that I can't get around:

The following packages have unmet dependencies.
  binutils: Depends: libc6 (>= 2.7-1) but 2.3.6.ds1-13etch5 is to be installed
  libc6-dev: Depends: libc6 (= 2.7-18lenny6) but 2.3.6.ds1-13etch5 is to be installed
  linux-image-2.6.18-6-486: Depends: initramfs-tools (>= 0.55) but it is not going to be installed or
                                     yaird (>= 0.0.12-8) but it is not going to be installed or
                                     linux-initramfs-tool
  locales: Depends: glibc-2.7-1
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).

Running "apt-get -f install" takes me back to the first error, telling me to install a 2.6 kernel.

I've tried apt-get clean, autoclean, rebooting, etc. Any suggestions on getting around it?

I don't have console access, the ability to boot from other media, etc.; it's a headless machine that I have SSH access to only.

James
  • 123
  • 3
  • You might want to edit and include your sources.list file (if possible). – Avery Payne Nov 25 '10 at 00:42
  • Because you don't have console access you can't install a new kernel? Or is there another reason not to upgrade the kernel? – d-_-b Nov 25 '10 at 01:10
  • I tried installing a new kernel ("sudo apt-get install -t etch linux-image-2.6.18-6-486" above), but ran into the unmet dependency error with binutils/libc6-dev/etc. – James Nov 26 '10 at 22:36

1 Answers1

1

Try uninstalling the binutils, libc-dev, and locales packages before you install the 2.6 kernel. Those packages should not be necessary for the upgrade, and can be reinstalled afterwards.

Steven Monday
  • 13,019
  • 4
  • 35
  • 45
  • 1
    This worked, although I didn't do things exactly as described. I removed all the lenny sources from sources.list (leaving *just* the etch lines from archive.debian.org), ran apt-get update, clean, upgrade, dist-upgrade, and that removed a lot of half-installed packages from lenny and updated the kernel to 2.6.18. Once I rebooted into 2.6.18, I could change sources.list back to lenny, update && dist-upgrade, and things seem to have worked. – James Nov 26 '10 at 22:39