Gary Hennigan wrote:
Thanks for the hint. Unfortunately, the machine is still losing, even after installing libc6_2.3.2.ds1-9_i386.deb which is the latest. Just to check I've done the right, thing, I did:"Malcolm Box" <malcolm@brownale.demon.co.uk> writes:OK, that looks like it might fix things. But can anyone tell me how to get the new version onto my machine given that both dpkg & apt-get don't work at the moment? Is there some way to manually unpack the files from the .deb into the right places?I've never done it, but there's nothing magical about *.deb files. They're simple "ar" archive files, usually containing a data.tar.gz and control.tar.gz file, among other things. For your purposes you could try and untar the data.tar.gz file, which would contain the actually libc binaries and go from there.
ar x libc6_2.3.2.ds1-9_i386.deb gunzip data.tar.gz cd / tar xvf data.tarall as root. Then ran ldconfig, since this seems to be all that the postinstall scripts do.
But the problem still remains - programs (including all shell scripts :-( ) that attempt to fork result in a: ../nptl/sysdeps/unix/sysv/linux/fork.c:132: __libc_fork: Assertion `({ __typeof (self->tid) __value; if (sizeof (__value) == 1) asm volatile ("movb %%gs:%P2,%b0" : "=q" (__value) : "0" (0), "i" (((size_t) &((struct pthread *)0)->tid))); else if (sizeof (__value) == 4) asm volatile ("movl %%gs:%P1,%0" : "=r" (__value) : "i" (((size_t) &((struct pthread *)0)->tid))); else { if (sizeof (__value) != 8) abort (); asm volatile ("movl %%gs:%P1,%%eax\n\t" "movl %%gs:%P2,%%edx" : "=A" (__value) : "i" (((size_t) &((struct pthread *)0)->tid)), "i" (((size_t) &((struct pthread *)0)->tid) + 4)); } __value; }) != ppid' failed.
And I'm still stuck :-(Can anyone suggest what other parts of the system I should manually "upgrade" to fix this? Kernel? Binutils? Trouble is of couse that a whole lot of stuff relies on the ability to fork.
Or is there another way to do this - boot from a rescue disk (what rescue disk!) and then point apt at the installed system and get it to fix it?
Cheers, Malcolm