Nie można tego użyć do sprawdzenia wersji deweloperskiej (nagłówków) biblioteki, prawda?
andig
2
Czy możesz podać 99% razy ? bash: ldconfig: command not foundna Debian x64 Jessie z xfce! To jest zalecane wydanie debian na stronie debian ...
Tomáš Zato,
4
@ TomášZato: ldconfignie jest dostępne ( command not foundpokazuje się), jeśli spróbujesz uruchomić go bez superużytkownika.
Gauthier
2
/sbin/ldconfig -pdziała dla mnie bez konieczności rootowania.
Pedro Gimeno,
34
Możesz sprawdzić u menedżera pakietów swojej dystrybucji (aptitude, yum, ...), ale ponieważ nie podałeś swojej dystrybucji, nie mogę dać ci właściwej komendy.
Innym sposobem może być uruchomienie gcc -ljpeg, jeśli pojawi się „ld: biblioteka nie znaleziona dla -ljpeg”, oznacza to, że gcc nie znalazł biblioteki (ale to nie znaczy, że nie jest zainstalowana), jeśli pojawi się coś w rodzaju „Niezdefiniowane symbole : „_main”, do którego odwołuje się: ... ”oznacza, że znaleziono libjpeg.
locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* są innym sposobem na sprawdzenie, czy lib jest zainstalowany w systemie
Istnieje wiele innych sposobów, aby to sprawdzić, jeśli dasz nam większy kontekst (dlaczego musisz sprawdzić, czy libjpeg jest zainstalowany), możemy dać ci najlepsze rozwiązanie dla twojej konkretnej sprawy.
Nazwa pliku może być również taka jak „libsomething.a” dla wersji statycznej.
promień
Uważam, że dpkg -sużyteczność jest ograniczona, ponieważ chce ona rzeczywistej nazwy pakietu, która może nieznacznie różnić się znacznie od samej biblioteki. Używamdpkg -s|grep LIBRARY
Drew Stephens
2
@dinomite apt-file jest twoim przyjacielem :)
promień
4
W systemach opartych na Redhat można użyć pkg-config, aby sprawdzić, czy biblioteka jest zainstalowana, czy nie. Wiele plików binarnych rpm faktycznie wykonuje te same kontrole przed kontynuowaniem instalacji, więc możemy rozsądnie polegać na ich prawdziwości.
Odpowiedzi:
Aby to zrobić w sposób niezależny od dystrybucji *, możesz użyć ldconfig z grep, w następujący sposób:
Jeśli libjpeg nie jest zainstalowany, nie będzie danych wyjściowych. Jeśli jest zainstalowany, otrzymasz linię dla każdej dostępnej wersji.
Zamień libjpeg na dowolną bibliotekę, a masz ogólny, niezależny od dystrybucji * sposób sprawdzania dostępności biblioteki.
Jeśli z jakiegoś powodu ścieżka do ldconfig nie jest ustawiona, zazwyczaj możesz spróbować ją wywołać, używając pełnej ścieżki
/sbin/ldconfig
.** 99% razy *
źródło
bash: ldconfig: command not found
na Debian x64 Jessie z xfce! To jest zalecane wydanie debian na stronie debian ...ldconfig
nie jest dostępne (command not found
pokazuje się), jeśli spróbujesz uruchomić go bez superużytkownika./sbin/ldconfig -p
działa dla mnie bez konieczności rootowania.Możesz sprawdzić u menedżera pakietów swojej dystrybucji (aptitude, yum, ...), ale ponieważ nie podałeś swojej dystrybucji, nie mogę dać ci właściwej komendy.
Innym sposobem może być uruchomienie
gcc -ljpeg
, jeśli pojawi się „ld: biblioteka nie znaleziona dla -ljpeg”, oznacza to, że gcc nie znalazł biblioteki (ale to nie znaczy, że nie jest zainstalowana), jeśli pojawi się coś w rodzaju „Niezdefiniowane symbole : „_main”, do którego odwołuje się: ... ”oznacza, że znaleziono libjpeg.locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*
są innym sposobem na sprawdzenie, czy lib jest zainstalowany w systemieIstnieje wiele innych sposobów, aby to sprawdzić, jeśli dasz nam większy kontekst (dlaczego musisz sprawdzić, czy libjpeg jest zainstalowany), możemy dać ci najlepsze rozwiązanie dla twojej konkretnej sprawy.
źródło
Korzystam z narzędzia whereis .
Próba:
źródło
Używam tego:
Po zainstalowaniu biblioteki lib:
Gdy biblioteka nie jest zainstalowana:
źródło
W przypadku dystrybucji opartej na debie możesz to zrobić
Lub jeśli znasz tylko nazwę pliku, użyj
Nazwa pliku to zwykle libsomething.so [.version].
źródło
dpkg -s
użyteczność jest ograniczona, ponieważ chce ona rzeczywistej nazwy pakietu, która może nieznacznie różnić się znacznie od samej biblioteki. Używamdpkg -s|grep LIBRARY
W systemach opartych na Redhat można użyć pkg-config, aby sprawdzić, czy biblioteka jest zainstalowana, czy nie. Wiele plików binarnych rpm faktycznie wykonuje te same kontrole przed kontynuowaniem instalacji, więc możemy rozsądnie polegać na ich prawdziwości.
źródło
Odbywa się to przez cały czas narzędzia konfiguracyjne w systemie Linux.
Spójrz na ten samouczek na temat autoconf i KDevelop .
Inne triki używałyby poleceń takich jak
ldconfig
idpkg
.źródło
Możesz także spróbować użyć dpkg, aby sprawdzić, czy jest zainstalowany.
dpkg --list | grep [some_key_words_of_your_lib]
Poza tym w CentOS możesz tego spróbować.
rpm -qa [lib_name]
źródło
pkg-config
zamiast tego.