Antworten:
Um dies auf eine distro-unabhängige * Art und Weise zu tun, können Sie ldconfig mit grep wie folgt verwenden:
ldconfig -p | grep libjpeg
Wenn libjpeg nicht installiert ist, erfolgt keine Ausgabe. Wenn es installiert ist, erhalten Sie eine Zeile für jede verfügbare Version.
Ersetzen Sie libjpeg durch eine beliebige Bibliothek, und Sie haben eine allgemeine, von der Distribution unabhängige * Möglichkeit, die Verfügbarkeit der Bibliothek zu überprüfen.
Wenn der Pfad zu ldconfig aus irgendeinem Grund nicht festgelegt ist, können Sie versuchen, ihn normalerweise mit dem vollständigen Pfad aufzurufen /sbin/ldconfig
.
** 99% der Zeiten *
bash: ldconfig: command not found
auf Debian x64 Jessie mit xfce! Dies ist die empfohlene Debian-Veröffentlichung auf der Debian-Website ...
ldconfig
ist nicht verfügbar (wird angezeigt command not found
), wenn Sie versuchen, es auszuführen, ohne Superuser zu sein.
/sbin/ldconfig -p
funktioniert bei mir ohne root sein zu müssen.
Sie können beim Paketmanager Ihrer Distribution nachfragen (aptitude, yum, ...), aber da Sie Ihre Distribution nicht angegeben haben, kann ich Ihnen nicht den richtigen Befehl geben.
Eine andere Möglichkeit ist gcc -ljpeg
, 'ld: library not found for -ljpeg' auszuführen. Dies bedeutet, dass gcc die Bibliothek nicht gefunden hat (dies bedeutet jedoch nicht, dass sie nicht installiert ist), wenn Sie so etwas wie 'Undefinierte Symbole' erhalten : "_main", referenziert von: ... 'bedeutet, dass libjpeg gefunden wurde.
locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*
sind eine andere Möglichkeit, um festzustellen, ob die lib im System installiert ist
Es gibt viele andere Möglichkeiten, dies zu überprüfen. Wenn Sie uns mehr Kontext angeben (warum müssen Sie überprüfen, ob libjpeg installiert ist), können wir Ihnen die beste Lösung für Ihren speziellen Fall anbieten.
Ich benutze das Dienstprogramm whereis .
Stichprobe:
l1feh4ck3r@xxx:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
Für deb-basierte Distribution können Sie dies tun
dpkg -s packagename
Oder wenn Sie nur den Dateinamen kennen, verwenden Sie
locate filename
Der Dateiname lautet normalerweise libsomething.so [.version].
dpkg -s
in der Nützlichkeit eingeschränkt, weil es den tatsächlichen Paketnamen will, der sich subtil oder signifikant von der Bibliothek selbst unterscheiden kann. Ich benutzedpkg -s|grep LIBRARY
Auf Redhat-basierten Systemen kann mit pkg-config überprüft werden, ob eine Bibliothek installiert ist oder nicht. Viele rpm-Binärdateien führen die gleichen Überprüfungen durch, bevor Sie mit der Installation fortfahren, sodass wir uns vernünftigerweise auf deren Richtigkeit verlassen können.
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
Dies wird von den Konfigurationstools unter Linux ständig durchgeführt.
Schauen Sie sich dieses Tutorial über Autoconf und KDevelop an .
Andere Tricks würden Befehle wie ldconfig
und verwenden dpkg
.
Sie können auch versuchen, mit dpkg zu überprüfen, ob es installiert ist.
dpkg --list | grep [some_key_words_of_your_lib]
Außerdem können Sie dies unter CentOS ausprobieren.
rpm -qa [lib_name]
pkg-config
stattdessen CentOS oder Red Hat-basierte Systeme .