ldconfig avagy rátalálás a shared object-ekre (.so fájlokra)

Adott a szitu, hogy pl. ffmpeg-et újrafordítás nélkül átvigyem egyik gépről a másikra (linuxosról linuxosra, és most épp Red Hat-esről Red Hat-esre). A binárist simán átkopizom, a gond csak az, hogy ha shared libraryt / shared object-et is használ, akkor azt nem fogja megtalálni, valami hasonló hibaüzenetet ad futtatáskor:

ffmpeg: error while loading shared libraries: libmp3lame.so: cannot open shared object file, or some other library.

Az üzenet egyértelmű, rá is találunk az eredeti gépen a /usr/local/lib alatt, hát fogjuk és áthozzuk ezeket is. De ennyitől még a hibaüzenet megmarad. Ugyanis a következő konfigurációra is szükség van az /etc/ld.so.conf fájlban:

jbuzi@gep:~$ cat /etc/ld.so.conf
include ld.so.conf.d/*.conf
/usr/local/lib

Plusz, le kell futtatni az "ldconfig" parancsot is, hogy újrahúzza a configba beírt könyvtár/könyvtárak tartalmát.
Ezután már tudja a rendszerünk, hogy miket kell memóriába tölteni program indításkor.

0 megjegyzés:

Megjegyzés küldése

top