[ale] Repair Problems
Joe Steele
joe at madewell.com
Mon Feb 25 19:32:26 EST 2002
On Monday, February 25, 2002 4:01 PM, John Mills wrote:
> Joe -
>
> Thanks.
>
> I verified the entry and fixed the link, and 'vi' came back to life.
>
> I still have a couple of mysteries - well, three or four.
>
> First, I fixed this once, a couple of weeks ago, then found it messed up
> again (probably related to "Fourth", below).
>
> Second, I still get the same complaint from
> "rpm -V glibc-2.2.4-19.3" about the messed-up link.
>
Evidently, it has not been recreated exactly as the original.
> Third, should this link have been made on "rpm -U ..."? It was not.
I would expect that 'rpm -U glibc-2.2.4-19.3' would give up
complaining that the package is already installed. To force a
reinstallation, you'd need something like 'rpm -U --replacepkgs
glibc-2.2.4-19.3'. On the other hand, you may have been doing this,
and it could still fail to fix things (see below).
>
> Fourth, there is a script, '/usr/sbin/libc_post_upgrade' which is owned by
> 'glibc-2.2.4-19.3' which actually _creates_ this spurious link, and I
> cannot find any package which owns up providing '/lib/lib.so'.
I would guess that somehow you (accidentally?) renamed or copied some
different version of ld-2.?.?.so to /lib/lib.so. Now, every time
that ldconfig is run, it finds /lib/lib.so, looks in it to see what
links should be created for it, and proceeds to create the link
ld-linux.so.2. Unfortunately, /lib/lib.so doesn't contain the
version of ld-2.2.4.so that you require (it's missing the symbol
_dl_cpuclock_offset, for example).
ldconfig also sees that you have ld-2.2.4.so, but it doesn't create a
link from it to ld-linux.so.2, probably because it thinks that
/lib/lib.so is the more recent version (or something like that).
Of course, ldconfig is run whenever you reboot, thus explaining why
things you thought were fixed end up being broken again.
ldconfig is also run (via /usr/sbin/libc_post_upgrade) as a post
installation script when you install glibc-2.2.4-19.3. Consequently,
reinstalling glibc-2.2.4-19.3 may never fix your problem until you
get /lib/lib.so hidden away so ldconfig can't find it.
You could probably:
objdump /lib/lib.so | less
and you will see somewhere:
SONAME ld-linux.so.2
This is what ldconfig is using to create the errant link. This would
also confirm what '/lib/lib.so' is. You might be able to compare its
file size with other ld-2.?.?.so files that you have been playing
with and figure out exactly where it came from.
The bottom line seems to be: get rid of /lib/lib.so.
--Joe
---
This message has been sent through the ALE general discussion list.
See http://www.ale.org/mailing-lists.shtml for more info. Problems should be
sent to listmaster at ale dot org.
More information about the Ale
mailing list