Suchpfade für gemeinsam genutzte Objekte (so)

366
Mukul Gupta

In welcher Reihenfolge werden Pfade gesucht, um eine gemeinsam genutzte Objektdatei zu laden?

Ich versuche, eine ausführbare Datei auszuführen, die versucht, eine gemeinsam genutzte Objektdatei zu laden. Die Shared Object-Datei finden Sie unter /usr/lib/x86_64-linux-gnu/.

Ich habe zwei Benutzer, nennen wir sie user1und user2. user1Kann die ausführbare Datei ausführen, user2stößt jedoch auf den Fehler: Die gemeinsam genutzte Objektdatei kann nicht geöffnet werden: libicuuc.so

Beide Benutzer haben das gleiche LD_LIBRARY_PATH. Was ist mising?

1
Hat user2 die richtigen Rechte zum Lesen von libicuuc.so? DavidPostill vor 8 Jahren 1
Ja, `user2` kann libicuuc.so lesen. Mukul Gupta vor 8 Jahren 0
Es stellt sich heraus, dass "user2" versucht hat, eine 32-Bit-Programmdatei für eine andere Distribution auszuführen. `ldd` half bei der Fehlersuche. Vielen Dank! Mukul Gupta vor 8 Jahren 0

1 Antwort auf die Frage

1
Gombai Sándor

man ldconfig may help you

/etc/ld.so.cache File containing an ordered list of libraries found in the directories specified in /etc/ld.so.conf, as well as those found in /lib and /usr/lib. 

but your distrib may contain other info than mine, so you should read yours.

Another way to decide what/which libraries are bound to your executable is to use the ldd program An example:

ldd /bin/echo linux-vdso.so.1 => (0x00007ffc2277a000) libc.so.6 => /lib64/libc.so.6 (0x0000003edc200000) /lib64/ld-linux-x86-64.so.2 (0x0000003edbe00000)