We run two Debian Linux servers at work: a back-up web server and a sandbox for random Linux development. Recently, I decided to do an apt-get upgrade on the servers to update their software packages to the latest versions.
I figured it would be simple. We were already running the unstable branch. And it hadn’t been that long since I last attempted an upgrade. So, as root, I issued the following commands:
# apt-get update # apt-get dist-upgrade
Uh-oh! I kept getting the following error:
Setting up libc6 (2.3.5-3) ... mv: error while loading shared libraries: libacl.so.1: cannot enable executable stack as shared object requires: Error 14
After some googling, I found out that the most recent libc6 package is uncompatible with my older Woody kernel, 2.4.18-bf2.4. Apparently, I should’ve known this ahead of time! Even worse, because libc6 was screwed up (and has its tentacles embedded in just about everything), I couldn’t install the latest kernel!
Somehow, I needed to downgrade my version of libc6 to an earlier version. Then I could update my kernel. Here’s how I did it:
Step 1: Put the stable branch at the top of my /etc/apt/sources.list file:
deb http://http.us.debian.org/debian/ stable main contrib non-free deb http://http.us.debian.org/debian/ unstable main contrib non-free deb http://security.debian.org/ stable/updates main contrib non-free
Step 2: Force the install of the Woody version of libc6 with the following command:
# apt-get update # apt-get install libc6/stable
Hurray, we’re back! Now I can update to the latest kernel!
# cat /proc/cpuinfo # apt-get install kernel-image-2.4.27-2-686/stable [ broken! - need a couple of extra packages ] # apt-get install dash/stable # apt-get install initrd-tools/stable [ in /etc/lilo.conf, added after 'default=Linux': ] image=/boot/vmlinuz-2.4.27-2-686 label=Linux2427 initrd=/initrd.img read-only image=/boot/vmlinuz-2.4.18-bf2.4 label=Linux2418 read-only [ Important: Make sure /initrd.img is linked to boot/initrd.img-2.4.27-2-686 ] # lilo # reboot
Step 3: Remove the stable branch from /etc/apt/sources.list and proceed with the upgrade as planned.
Last Updated: Thu, 17 Nov 2005