Frage Wie überprüft man, ob eine Bibliothek installiert ist?


Wie überprüfe ich in Linux, ob eine Bibliothek installiert ist oder nicht? (von der Kommandozeile natürlich).

In meinem speziellen Fall möchte ich nun überprüfen, ob libjpeg installiert ist.


139
2017-08-16 16:02


Ursprung


Welche Distribution verwenden Sie? - radius


Antworten:


Um dies in einer Distro-unabhängigen * Weise zu tun, können Sie ldconfig mit grep wie folgt verwenden:

ldconfig -p | grep libjpeg

Wenn libjpeg nicht installiert ist, wird keine Ausgabe ausgegeben. 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, distro-unabhängige * Möglichkeit, die Verfügbarkeit der Bibliothek zu überprüfen.

Wenn aus irgendeinem Grund der Pfad zu ldconfig nicht festgelegt ist, können Sie versuchen, ihn normalerweise über den vollständigen Pfad aufzurufen /sbin/ldconfig.

** 99% der Zeiten *


174
2018-06-06 22:19



Dies sollte als Antwort akzeptiert werden. Großartig!
Es ist nicht möglich, dies zu verwenden, um nach der Entwicklerversion (Header) einer Bibliothek zu suchen, oder? - andig
Können Sie angeben? 99% mal? bash: ldconfig: command not found auf Debian x64 Jessie mit xfce! Dies ist die empfohlene Debian-Version auf der Debian-Website ... - Tomáš Zato
@ TomášZato: ldconfig ist nicht verfügbar (command not found Wenn Sie versuchen, es auszuführen, ohne Superuser zu sein. - Gauthier
/sbin/ldconfig -p funktioniert für mich ohne root sein zu müssen. - Pedro Gimeno


Sie können das mit dem Paketmanager Ihrer Distribution überprüfen (aptitude, yum, ...), aber da Sie Ihre Distribution nicht angegeben haben, kann ich Ihnen nicht den richtigen Befehl geben.

Ein anderer Weg kann sein, zu laufen gcc -ljpegWenn "ld: library not -ljpeg" nicht gefunden wird, bedeutet dies, dass gcc die Bibliothek nicht gefunden hat (aber nicht bedeutet, dass sie nicht installiert ist), wenn Sie etwas wie "Undefined symbols:" _main "erhalten von: ... 'bedeutet, dass libjpeg gefunden wurde.

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* gibt es eine andere Möglichkeit zu finden, ob die Lib im System installiert ist

Es gibt viele andere Möglichkeiten zu überprüfen, ob Sie uns mehr Kontext geben (warum Sie überprüfen müssen, ob libjpeg installiert ist), wir könnten Ihnen die beste Lösung für Ihren speziellen Fall geben.


32
2017-08-16 16:16



Wie finde ich es mit Eignung? - BBK


Ich benutze es wo ist Nützlichkeit.
Probe:

l1feh4ck3r @ xxx: ~ $ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la

15
2017-08-17 01:00





Für Deb-basierte Verteilung können Sie tun

dpkg -s packagename

Oder wenn Sie nur den Dateinamen kennen, verwenden Sie

locate filename

Der Dateiname ist normalerweise libsomething.so [.version].


8
2017-08-16 16:28



Der Dateiname kann auch etwas wie "libsomething.a" für die statische Version sein. - radius
ich finde dpkg -seingeschränkt im Dienstprogramm, weil es den tatsächlichen Paketnamen benötigt, der sich subtil oder signifikant von der Bibliothek selbst unterscheiden kann. ich benutze dpkg -s|grep LIBRARY - Drew Stephens
@dinomite apt-file ist dein Freund :) - radius


Ich benutze das:

gcc -lpng

Wenn die lib installiert ist, ergibt dies:

undefined reference to 'main'

Wenn die lib ist nicht Eingerichtet:

cannot find -lpng

8
2018-03-31 14:50





Auf Redhat-basierten Systemen kann mit pkg-config überprüft werden, ob eine Bibliothek installiert ist oder nicht. Viele U / min-Binärdateien führen die gleichen Überprüfungen durch, bevor sie mit der Installation fortfahren, so dass wir uns einigermaßen auf ihre 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

3
2018-02-07 09:35





Dies geschieht durch Konfigurationstools unter Linux.

Schau dir das an Tutorial über autoconf und KDevelop.

Andere Tricks würden Befehle wie verwenden ldconfig und dpkg.


1
2017-08-16 16:11