Odpowiedzi:
Aby to zrobić w sposób niezależny od dystrybucji *, możesz użyć ldconfig z grep, w następujący sposób:
ldconfig -p | grep libjpeg
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 *
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 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.
W przypadku dystrybucji opartej na debie możesz to zrobić
dpkg -s packagename
Lub jeśli znasz tylko nazwę pliku, użyj
locate filename
Nazwa pliku to zwykle libsomething.so [.version].
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.
pkg-config --cflags jpeg
pkg-config --libs jpeg
pkg-config --cflags "jpeg >= 1.0.0" # for version check
pkg-config --modversion jpeg | awk -F. '{ printf "0x%02X%02X%02X\n",$1,$2,$3 }' #version check
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
i dpkg
.
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]
pkg-config
zamiast tego.