Re: /bin/sh broken - now what?
On Sun, 25 Nov 2001, Karsten M. Self wrote:
> on Sun, Nov 25, 2001 at 02:22:13AM +0100, A.R. (Tom) Peters (tpeters@xs4all.nl) wrote:
> > I tried to install the G77 compiler, and got the latest stuff from
> > testing. It required a newer version of libc6 (2.2.4-5), which got
> > installed first. Then all subsequent packages failed. I cannot open a
> > shell anymore:
> >
> > /bin/sh: relocation error: /bin/sh: undefined symbol: history_max_entries
> >
> > Existing shells still work, but this situation paralyzes just about
> > anything, including apt. What can I do?
>
> Sounds like you might have tweaked some libs.
No I did not. I just tried to install a package, and then apt-get
decided that libc should be upgraded.
> Do you have sash installed? This is the Stand Alone Shell -- it has no
> dynamic library deps and builds-in a bunch of basic utilities (names are
> prefixed with a '-', e.g.: -ls). Very helpful when you've fried your
> system, particularly libraries, or for running from a known trusted
> floppy on a compromised box. The linker utilities (ld, ldd) aren't
> included, but you might use these. You're looking for libraries which
> have changed, are corrupted, or have been deleted. I think.
Thanx for the tip. I did not have it, but could copy it from a
BBC. Unfortunately sash appears to be a really interactive shell, and a
bad replacement for `sh`. `ash` is somehwat better in that respect.
In the end, I replaced my current version of bash by an older one from
CD. Weirdly, that worked. But the bash I had (maybe bash-2.05-8 but
presumably earlier) is NOT compatible with libc6-2.2.4-5 .
A classical example on how not to try repair a running engine: I did:
rm libc.so.6
ln -s libc-2.2.1.so libc6.so.6
Of course, this should have been:
rm libc.so.6 ; ln -s libc-2.2.1.so libc6.so.6
ah, the subtleties of whitespace.
In fact, this doesn't work either: `ln` breaks immediately. I had to use
`sash` to do these kind of commands.
(Now I think of it, `rm libc.so.6 && ln -s libc-2.2.1.so libc6.so.6` might
have worked).
Years ago it used to be that /sbin/ contained all important utilities
Statically linked, in case something seriously went wrong with
libraries. This custom has disappeared, and I feel the loss severely
today.
--
#>!$!%(@^%#%*(&(#@#*$^@^$##*#@&(%)@**$!(&!^(#((#&%!)%*@)(&$($$%(@#)&*!^$)^@*^@)
Tom "thriving on chaos" Peters
NL-1062 KD nr 149 tel. +31-204080204
Amsterdam e-mail tpeters@xs4all.nl
Reply to: