Respuestas:
Para hacer esto de una manera independiente de la distribución *, puede usar ldconfig con grep, de esta manera:
ldconfig -p | grep libjpeg
Si libjpeg no está instalado, no habrá salida. Si está instalado, obtendrá una línea para cada versión disponible.
Reemplace libjpeg por cualquier biblioteca que desee, y tiene una forma genérica, independiente de la distribución * de verificar la disponibilidad de la biblioteca.
Si por alguna razón la ruta a ldconfig no está establecida, puede intentar invocarla usando su ruta completa, por lo general /sbin/ldconfig
.
** 99% de las veces *
bash: ldconfig: command not found
en Debian x64 Jessie con xfce! Esta es la versión recomendada de Debian en el sitio web de Debian ...
ldconfig
no está disponible ( command not found
aparece) si intenta ejecutarlo sin ser superusuario.
/sbin/ldconfig -p
funciona para mí sin necesidad de ser root.
Puede consultar con el administrador de paquetes de su distribución (aptitude, yum, ...) pero como no entregó su distribución, no puedo darle el comando correcto.
Otra forma puede ser ejecutar gcc -ljpeg
, si obtiene 'ld: biblioteca no encontrada para -ljpeg' significa que gcc no ha encontrado la biblioteca (pero no significa que no esté instalada), si obtiene algo como 'Símbolos indefinidos : "_main", referenciado desde: ... 'significa que se ha encontrado libjpeg.
locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*
Hay alguna otra forma de averiguar si la lib está instalada en el sistema
Hay muchas otras formas de verificar que, si nos brinda más contexto (por qué necesita verificar si libjpeg está instalado), podríamos brindarle la mejor solución para su caso específico.
Yo uso la utilidad whereis .
Muestra:
l1feh4ck3r@xxx:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
Para la distribución basada en deb puede hacer
dpkg -s packagename
O si solo conoce el nombre del archivo, use
locate filename
El nombre de archivo suele ser libsomething.so [.version].
dpkg -s
limitado en utilidad, porque quiere el nombre real del paquete, que puede diferir sutil o significativamente de la biblioteca misma. Yo usodpkg -s|grep LIBRARY
En los sistemas basados en Redhat, uno puede usar pkg-config para verificar si una biblioteca está instalada o no. Muchos binarios de rpm realmente hacen las mismas verificaciones antes de proceder con la instalación, por lo que podemos confiar razonablemente en su veracidad.
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
Esto se hace mediante herramientas de configuración en Linux todo el tiempo.
Mire este Tutorial sobre autoconf y KDevelop .
Otros trucos usarían comandos como ldconfig
y dpkg
.
También puede intentar usar dpkg para verificar si está instalado.
dpkg --list | grep [some_key_words_of_your_lib]
Además, en CentOS, puedes probar esto.
rpm -qa [lib_name]
pkg-config
en su lugar.