[CentOS] Yum messages: /usr/lib/liblzo.so.1 is not a symbolic link

William L. Maltby CentOS4Bill at triad.rr.com
Tue Dec 16 19:20:54 UTC 2008


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 at 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!

-- 
Bill




More information about the CentOS mailing list