You are not logged in.

#1 2013-03-27 11:30:15

Corubba
Member
From: Germany
Registered: 2010-11-14
Posts: 86

[Solved] System is looking for wrong shared library version

Hey guys.

Today I installed updates on my two arch machines, both running SLiM + XFCE4, using `pacman -Syu`. The update on one machine worked like a charm, but broke the other.

When booting and trying to login with SLiM, the screen goes black and I'm back at SLiM. The log shows this:

xfce4-session: error while loading shared libraries: libicule.so.50: cannot open shared object file: No such file or directory

Of course there is no such file, because I installed icu 51.1-1 and there is only libicule.so.51 in /usr/lib/.

I tried to re-download and re-install icu and xfce4-session in rescue mode, or creating a symlink for libicule.so.50 pointing to the new, but nothing changed. I always drop back to SLiM. On the second system there is no error, I installed the new icu package, rebooted and logged in as usual.

I downgraded to icu 50.1.2-1 and I can login again. But it seems that some other applications are breaking now. (vim e.g.)

Any ideas how to fix this?


Greetz Corubba

Last edited by Corubba (2013-03-28 14:30:59)

Offline

#2 2013-03-28 11:04:13

Corubba
Member
From: Germany
Registered: 2010-11-14
Posts: 86

Re: [Solved] System is looking for wrong shared library version

Today I tried to update icu along with lib32-icu, but the result was the same. Still looking for libicule.so.50.

I have run `ldconfig -v` to check the symlinks, and it uses the v51 library.

And it seems not be to be a XFCE related problem, when installing v51 I can't even start vim because it also wants v50. So it has to be something other.

On both systems, the LD_LIBRARY_PATH variable is blank. When running `ldd /usr/bin/xfce4-session`, it get the same result as running it. One machine said "not found" because looking for v50, the other is using v51 and all okay.

Maybe some problem with the dynamic linker? I'm not very familiar with libraries and linking stuff.

Last edited by Corubba (2013-03-28 11:20:37)

Offline

#3 2013-03-28 12:37:58

Lone_Wolf
Member
From: Netherlands, Europe
Registered: 2005-10-04
Posts: 11,910

Re: [Solved] System is looking for wrong shared library version

could be that you now have  a mix of packages build against icu 50 and icu 51 .

Find atleast 2 packages (more is better) that don't work with whatever icu version you have installed now, then run pactree PACKAGE for all.
compare the outputs and look for dependencies they have in common in the dep tree between them and icu.


Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.


(A works at time B)  && (time C > time B ) ≠  (A works at time C)

Offline

#4 2013-03-28 14:06:19

Corubba
Member
From: Germany
Registered: 2010-11-14
Posts: 86

Re: [Solved] System is looking for wrong shared library version

Thanks for the tip. pactree is a pretty nice tool.

I used this short snippet to get all AUR packets, that depend on icu:

for PACKET in $(pactree -rlu icu | sort); do yaourt -Q | grep "local/$PACKET "; done

And looked for these packages in the reverse dep-tree `pactree -r icu`. Voila, all depend on harfbuzz-git. I rebuild that package, rebooted and I'm still able to login with icu v51 installed.
With that knowledge, it now makes sense that the harfbuzz lib has thrown a "unknown symbol" error when I symlinked v50 libs to the v51 ones.


Thanks for the help.

Last edited by Corubba (2013-03-28 14:08:47)

Offline

#5 2013-03-29 01:28:38

sainoba
Member
Registered: 2013-03-29
Posts: 1

Re: [Solved] System is looking for wrong shared library version

I had the same problem today.
I re-installed "harfbuzz and lib32-harfbuzz" and it solved the problem!

Offline

Board footer

Powered by FluxBB