Réponses:
Pour faire cela d'une 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 aurez 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 généralement l'invoquer en utilisant son chemin d'accès complet /sbin/ldconfig
.
** 99% du temps *
bash: ldconfig: command not found
sur Debian x64 Jessie avec xfce! Ceci est la version recommandée de Debian sur le site web debian ...
ldconfig
n'est pas disponible ( command not found
s'affiche) si vous essayez de l'exécuter sans être superutilisateur.
/sbin/ldconfig -p
travaille pour moi sans avoir besoin d'être root.
Vous pouvez vérifier avec le gestionnaire de paquets de votre distribution (aptitude, miam, ...) 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 -ljpeg
, si 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é depuis: ... '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.
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].
dpkg -s
utilité limitée, car elle 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'utilisedpkg -s|grep LIBRARY
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
Ceci est fait par les outils de configuration sur Linux tout le temps.
Regardez ce tutoriel sur autoconf et KDevelop .
D'autres astuces utiliseraient des commandes telles que ldconfig
et dpkg
.
Vous pouvez également essayer d'utiliser dpkg pour vérifier s'il est installé.
dpkg --list | grep [some_key_words_of_your_lib]
De plus, sur CentOS, vous pouvez essayer ceci.
rpm -qa [lib_name]
pkg-config
plutôt.