Question Comment vérifier si une bibliothèque est installée?


Sous Linux, comment vérifier si une bibliothèque est installée ou non? (à partir de la ligne de commande bien sûr).

Dans mon cas spécifique, je veux vérifier si libjpeg est installé.


139
2017-08-16 16:02


origine


Quelle distribution utilisez-vous? - radius


Réponses:


Pour faire cela de manière indépendante de la distro *, vous pouvez utiliser ldconfig avec grep, comme ceci:

ldconfig -p | grep libjpeg

Si libjpeg n'est pas installé, il n'y aura pas de sortie. S'il est installé, vous obtiendrez une ligne pour chaque version disponible.

Remplacez libjpeg par la bibliothèque de votre choix et vous disposez d'un moyen générique, indépendant de la distro *, de vérifier la disponibilité de la bibliothèque.

Si, pour une raison quelconque, le chemin d'accès à ldconfig n'est pas défini, vous pouvez essayer de l'invoquer à l'aide de son chemin d'accès complet. /sbin/ldconfig.

** 99% du temps *


174
2018-06-06 22:19



Cela devrait être accepté comme la réponse. Génial!
Il n'est pas possible de l'utiliser pour vérifier la version dev (en-têtes) d'une bibliothèque, n'est-ce pas? - andig
Pouvez-vous préciser 99% fois? bash: ldconfig: command not found sur Debian x64 Jessie avec xfce! Voici la version recommandée par Debian sur le site web debian ... - Tomáš Zato
@ TomášZato: ldconfig n'est pas disponible (command not found s'affiche) si vous essayez de l'exécuter sans être superutilisateur. - Gauthier
/sbin/ldconfig -p travaille pour moi sans avoir besoin d'être root. - Pedro Gimeno


Vous pouvez vérifier avec le gestionnaire de paquets de votre distribution (aptitude, yum, ...) mais comme vous n'avez pas donné votre distribution, je ne peux pas vous donner la commande correcte.

Une autre façon peut être de courir gcc -ljpegSi vous obtenez "ld: bibliothèque introuvable pour -ljpeg", cela signifie que gcc n'a pas trouvé la bibliothèque (mais cela ne veut pas dire qu'elle n'est pas installée). Si vous obtenez quelque chose comme "Symboles non définis:" _main ", référencé from: ... 'cela signifie que libjpeg a été trouvé.

locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg* existe-t-il un autre moyen de savoir si la bibliothèque est installée dans le système?

Il existe de nombreuses autres façons de vérifier cela. Si vous nous donnez plus de contexte (pourquoi vous devez vérifier si libjpeg est installé), nous pourrions vous donner la meilleure solution pour votre cas spécifique.


32
2017-08-16 16:16



Comment le trouver en utilisant aptitude? - BBK


Je me sers où se trouve utilitaire.
Échantillon:

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

15
2017-08-17 01:00





Pour la distribution basée sur deb, vous pouvez faire

dpkg -s packagename

Ou si vous ne connaissez que le nom du fichier, utilisez

locate filename

Le nom du fichier est habituellement libsomething.so [.version].


8
2017-08-16 16:28



Le nom de fichier peut aussi être quelque chose comme "libsomething.a" pour la version statique. - radius
je trouve dpkg -s utilité limitée, car il veut le nom du paquet lui-même, qui peut différer légèrement ou sensiblement de la bibliothèque elle-même. j'utilise dpkg -s|grep LIBRARY - Drew Stephens
@dinomite apt-file est votre ami :) - radius


J'utilise ceci:

gcc -lpng

Quand la lib est installée, cela donne:

undefined reference to 'main'

Quand la lib est ne pas installée:

cannot find -lpng

8
2018-03-31 14:50





Sur les systèmes basés sur Redhat, on peut utiliser pkg-config pour vérifier si une bibliothèque est installée ou non. En réalité, de nombreux binaires rpm effectuent les mêmes vérifications avant de procéder à l'installation. Nous pouvons donc raisonnablement compter sur sa véracité.

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





Ceci est fait par les outils de configuration sur Linux tout le temps.

Regarde ça Tutoriel sur autoconf et KDevelop.

D'autres astuces utiliseraient des commandes telles que ldconfig et dpkg.


1
2017-08-16 16:11





Vous pouvez également essayer d'utiliser dpkg pour vérifier s'il est installé.

dpkg --list | grep [some_key_words_of_your_lib]


0
2017-10-25 08:09



Note: Ne fonctionnera que pour les distributions basées sur Debian - ALex_hha