On Tue, 2008-12-16 at 12:43 -0500, Filipe Brandenburger wrote:
Hi,
On Tue, Dec 16, 2008 at 07:05, William L. Maltby CentOS4Bill@triad.rr.com wrote:
/sbin/ldconfig: /usr/lib/liblzo.so.1 is not a symbolic link
This message is not generated by "yum", but by "ldconfig" (as the message itself is actually saying). When "yum" installs a new library, the RPM contains instructions to run "ldconfig" after installing it, so that the loader cache is updated and when you run a program that needs that library it will be found.
Yeah, I was on-board with that process. What I didn't know, was if the unexpected message was due to a local issue (as you've mentioned below) or something in the pre/post (or other?) sections of the scripts. Since I know nothing of the scripts (python?) I thought I'd better seek some help.
One of the steps "ldconfig" does is creating symbolic links for libraries, using the name that is hard-coded inside the library.
AH! Ergo, when it tries and there is a real file, is sensibly doesn't replace it. And it's nice enough to let the user know.
$ rpm -q --whatprovides /usr/lib/liblzo.so.1 lzo-1.08-5.el5.rf
The lzo package actually contains a file such as /usr/lib/liblzo.so.1.0.0 (or similar version number), that file has "liblzo.so.1" hard-coded as the name to look for inside it (it's the SONAME), and the RPM also contains the symbolic link, /usr/lib/liblzo.so.1 -> liblzo.so.1.0.0 (this is the symbolic link created/updated by ldconfig).
However, in your system, you have a file and not a symbolic link:
$ls -ld /usr/lib/liblzo.so.1 -rwxr-xr-x 1 root root 406394 Nov 4 02:39 /usr/lib/liblzo.so.1
Something overwrote that symbolic link and created a file in that place. Maybe by copying the original /usr/lib/liblzo.so.1.0.0 to liblzo.so.1, or maybe by doing something else. I've seen this happen with installation scripts for commercial products, maybe you installed something that used "lzo" and included a version of it that was packaged differently than the version you got from RPMforge.
Hmm. Wouldn't an rpm -q --whatprovides tell all occurrences? Of course, if the miscreant package was since removed it couldn't. Maybe rpm expects only one source per resource?
The date of the file might be a clue on when that happened, in that case, at 2:39am last Novemeber 4th. You can try to look for logs on your system to see what might have done that.
I'll check that out.
In any case, the simple fix is to just remove that file (back it up first, just in case), and run ldconfig again, you will see that the symbolic link will be properly created.
Looks like that's on the $$
# ls -l `locate liblzo.so` -rwxr-xr-x 1 root root 406394 Nov 4 02:39 /usr/lib/liblzo.so.1 -rwxr-xr-x 1 root root 406394 Nov 4 02:39 /usr/lib/liblzo.so.1.0.0
You may also try to erase and reinstall the lzo RPM, I believe this would also fix the problem.
It looks like the remove/ldconfig would be just as good here.
I'm going to check my logs and see if I can see what scrogged the setup. If I see anything likely, I'll post so others can see it.
HTH, Filipe
<snip sig stuff>
Thanks for taking the time Filipe!