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

Re: Hosed my debian system.



> Brandon Mitchell <bhmit1@mail.wm.edu> writes:
> 
> > Would anyone disagree to a statically linked /sbin/sh.  It doesn't have 
> > to be bash.  The idea is to have it for emergencies, and paranoid admins 
> > would use it for the root shell.  (i.e. when /bin/sh blows up, move 
> > /bin/sh to /bin/sh.bak and ln -s /sbin/sh /bin/sh.)
> 
> We've already been over this argument many times.  It's pointless to
> have staticly linked binaries because there are always more binaries
> that are important.  A much better solution is a rescue floppy.

Agreed.  In this case, the simplest solution is to read the package 
control files a bit more carefully.

When I was upgrading to libreadlineg2, it failed.  It failed because it 
conflicted with libreadline2 (<< 2.1-2.1).  I didn't have libreadline2 
2.1-2.1 installed, so I upgraded that first.  I didn't force a removal, 
since readline is a -very- critical library.  Once I upgraded 
libreadline2, libreadlineg2 installed fine.

The system, in this case, works to protect you.  Every little step (and 
there were a lot of them) was loaded with roadblock designed to keep me 
from hosing my system.

All I wanted to do was upgrade Bash.

The old bash was libc5-based, and used libreadline2
The new bash was libc6-based, and used libreadlineg2.

I couldn't install the new bash until I had installed libc6, 
ncurses3.4, and libreadlineg2.  If I overrode this, my system would be 
hosed, since the new bash wouldn't be able to load the necessary 
libraries.

libc6 and ncurses3.4 installed easily.  But then, the sonames are 
different from the libc5 libraries, so there was no problem.

libreadlineg2 was a problem.  It has the same sonames as libreadline2, 
so installing it would overwrite the libc5-based libraries, and my 
system would be hosed (bash is still libc5 at this point).  As such, it 
conflicts with older versions of libreadline2.  I can't install it.  If 
I remove libreadline2, my system is hosed (bash needs it).  So I go to 
upgrade it.

Here, there is another interesting roadblock.  libreadline2 solves the 
soname problem by moving the library to a libc5-compat directory.  
However, the standard libc5 ldso can't handle the compatability 
directory properly (or something...  I'm not quite certain what the 
issue is), so libreadline2 pre-depends on the new ldso.

So I install the new ldso, which allows me to upgrade libreadline2, so 
now libreadlineg2 can be installed, and finally, I can upgrade bash.

It is a pain, but doing it according to the way the system wants you to 
prevents the system from getting hosed.  There is no reason to force 
anything (I rarely force anything, except when I am -certain- that it 
won't hurt anything, and I never force-depends), just do things in a 
convoluted order.

-- 
     Buddha Buck                      bmbuck@acsu.buffalo.edu
"Just as the strength of the Internet is chaos, so the strength of our
liberty depends upon the chaos and cacaphony of the unfettered speech
the First Amendment protects."  -- A.L.A. v. U.S. Dept. of Justice


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-devel-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .


Reply to: