Forum Linux.pl

Oprogramowanie => Inne => Wątek zaczęty przez: riko w 2008-02-01, 17:41:42

Tytuł: Biblioteka, której "nie ma"
Wiadomość wysłana przez: riko w 2008-02-01, 17:41:42
Witam.

Mam taki programik, który nie chce się uruchomić.

$ ./eagle 
./eagle: error while loading shared libraries: libXext.so.6: cannot open shared
object file: No such file or directory
Biblioteka jednak istnieje:

$ ls -l /usr/lib/libXext.so.6
lrwxrwxrwx 1 root root 16 2008-01-06 14:35 /usr/lib/libXext.so.6 -> libXext.so.6.4.0
$ ls -l /usr/lib/libXext.so.6.4.0
-rw-r--r-- 1 root root 69992 2006-08-27 00:40 /usr/lib/libXext.so.6.4.0
I LD go 'widzi'

# ldconfig -p | grep libXext
        libXext.so.6 (libc6,x86-64) => /usr/lib/libXext.so.6
Jeśli dobrze pamiętam to działał mi przed przeinstalowaniem systemu (Debian 4.0)
Być może to przez to, że system i biblioteka jest 64-bitowa a program najprawdopodobniej 32-bitowy (?)

Pzdr i TIA.
Tytuł: Biblioteka, której "nie ma"
Wiadomość wysłana przez: arctgx w 2008-02-01, 20:22:19
Sam uzupełniłbym wyniki takich poszukiwań o ldd ./eagle.
Tytuł: Biblioteka, której "nie ma"
Wiadomość wysłana przez: riko w 2008-02-02, 19:51:20
$ ldd ./eagle
        linux-gate.so.1 =>  (0xffffe000)
        libXext.so.6 => not found
        libX11.so.6 => not found
        libdl.so.2 => /lib32/libdl.so.2 (0xf7f27000)
        libm.so.6 => /lib32/libm.so.6 (0xf7f02000)
        libc.so.6 => /lib32/libc.so.6 (0xf7dd7000)
        /lib/ld-linux.so.2 (0xf7f40000)
Tytuł: Biblioteka, której "nie ma"
Wiadomość wysłana przez: ZipoKing w 2008-02-02, 20:35:06
A przypadkiem w ostatnim czasie nie miałeś update'u biblioteki libXext? Spróbuj wywołać z poziomu root'a /sbin/ldconfig (uaktualnieni cache'u), bo jeżeli biblioteka jest tam, gdzie powinna, to raczej powinno działać.
Powinieneś też sprawdzić, czy w /etc/ld.so.conf masz wpis odnoszący się do katalogu, gdzie są biblioteki X-serwera (bo jak widzę, libX11 też nie widzi).
Tytuł: Biblioteka, której "nie ma"
Wiadomość wysłana przez: arctgx w 2008-02-02, 20:37:27
Na mojego nosa, sprawdziłbym czy /usr/lib dodane jest w konfigach ld (czyli w /etc/ld.so.conf(.d/*)). Polecenie ldd nie pokazuje linkowania czegokolwiek z /usr/lib, więc w tym może być problem. Po dodaniu go do wpisu w którymś z konfigów wykonaj ldconfig.
Tytuł: Biblioteka, której "nie ma"
Wiadomość wysłana przez: riko w 2008-02-02, 21:25:23
Dodałem /usr/lib do /etc/ld.so.conf.d/x86_64-linux-gnu.conf i wykonałem ldconfig. Nic się nie zmieniło.

(A co z tą bitowością, 32b program vs 64b biblioteka ?)
Tytuł: Biblioteka, której "nie ma"
Wiadomość wysłana przez: riko w 2008-02-02, 22:09:53
Problem rozwiązany po doinstalowaniu pakietu ia32-libs

Teraz to wygląda tak:
# ldconfig -p | grep libXext
        libXext.so.6 (libc6,x86-64) => /usr/lib/libXext.so.6
        libXext.so.6 (libc6) => /usr/lib32/libXext.so.6
        libXext.so (libc6) => /usr/lib32/libXext.so

$ ldd ./eagle
        linux-gate.so.1 =>  (0xffffe000)
        libXext.so.6 => /usr/lib32/libXext.so.6 (0xf7fa4000)
        libX11.so.6 => /usr/lib32/libX11.so.6 (0xf7eb8000)
        libdl.so.2 => /lib32/libdl.so.2 (0xf7eb4000)
        libm.so.6 => /lib32/libm.so.6 (0xf7e8f000)
        libc.so.6 => /lib32/libc.so.6 (0xf7d64000)
        libXau.so.6 => /usr/lib32/libXau.so.6 (0xf7d61000)
        libXdmcp.so.6 => /usr/lib32/libXdmcp.so.6 (0xf7d5c000)
        /lib/ld-linux.so.2 (0xf7fca000)