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.
Esto debe ser aceptado como la respuesta. ¡Excelente!
1
No es posible usar esto para verificar la versión de desarrollo (encabezados) de una biblioteca, ¿verdad?
andig
2
¿Se puede especificar el 99% de las veces ? bash: ldconfig: command not founden Debian x64 Jessie con xfce! Esta es la versión recomendada de Debian en el sitio web de Debian ...
Tomáš Zato
44
@ TomášZato: ldconfigno está disponible ( command not foundaparece) si intenta ejecutarlo sin ser superusuario.
Gauthier
2
/sbin/ldconfig -pfunciona para mí sin necesidad de ser root.
Pedro Gimeno
34
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.
El nombre de archivo también puede ser algo así como "libsomething.a" para la versión estática.
radio
Encuentro dpkg -slimitado en utilidad, porque quiere el nombre real del paquete, que puede diferir sutil o significativamente de la biblioteca misma. Yo usodpkg -s|grep LIBRARY
Drew Stephens
2
@dinomite apt-file es tu amigo :)
radio
4
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.
Respuestas:
Para hacer esto de una manera independiente de la distribución *, puede usar ldconfig con grep, de esta manera:
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 *
fuente
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 sistemaHay 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.
fuente
Yo uso la utilidad whereis .
Muestra:
fuente
Yo uso esto:
Cuando se instala la lib, produce:
Cuando la lib no está instalada:
fuente
Para la distribución basada en deb puede hacer
O si solo conoce el nombre del archivo, use
El nombre de archivo suele ser libsomething.so [.version].
fuente
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.
fuente
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
ydpkg
.fuente
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]
fuente
pkg-config
en su lugar.