Nowe posty

Autor Wątek: Biblioteka, której "nie ma"  (Przeczytany 4552 razy)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
Biblioteka, której "nie ma"
« dnia: 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.

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
Biblioteka, której "nie ma"
« Odpowiedź #1 dnia: 2008-02-01, 20:22:19 »
Sam uzupełniłbym wyniki takich poszukiwań o ldd ./eagle.
Użytkownik: Ib5sXfcCkvYR
Hasło: adam

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
Biblioteka, której "nie ma"
« Odpowiedź #2 dnia: 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)

Offline Paweł Smoliński

  • Administrator
  • Guru
  • *****
  • Wiadomości: 593
    • Zobacz profil
Biblioteka, której "nie ma"
« Odpowiedź #3 dnia: 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).
Gutta cavat lapidem non vi, sed saepe cadendo / sic homo doctus fit non vi sed saepe studendo

Offline arctgx

  • Users
  • Guru
  • *****
  • Wiadomości: 2753
    • Zobacz profil
Biblioteka, której "nie ma"
« Odpowiedź #4 dnia: 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.
Użytkownik: Ib5sXfcCkvYR
Hasło: adam

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
Biblioteka, której "nie ma"
« Odpowiedź #5 dnia: 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 ?)

Offline

  • Users
  • Nowy na forum
  • *
  • Wiadomości: 4
    • Zobacz profil
Biblioteka, której "nie ma"
« Odpowiedź #6 dnia: 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)