Enviamos ImageMagick con nuestro producto. Necesita bastantes bibliotecas.
libtiff libICE libdl
libfreetype libX11 libglib-2.0
libjpeg libbz2 libxml2
libpng librsvg-2 libz
libfontconfig libgdk_pixbuf-2.0 libm
libXext libm libgomp
libXt libgobject-.0 libpthread
libSM libgmodule-2.0
¿Existe una forma estándar de comprobar si estas bibliotecas ya están presentes en el sistema operativo host RedHat?
La búsqueda en SO y Google conduce a comandos como
pkg-config, localizar y cuál
¿Alguien los ha utilizado con éxito?
Respuesta1
Pruebe el ldd
comando:
ldd ImageMagick
Imprime los objetos dinámicos compartidos, las bibliotecas a las que hace referencia el programa ImageMagick y si se encontraron o no las bibliotecas.
Respuesta2
puedes usar yum para instalar y mostrará las dependencias que faltan.
Si solo desea saber qué falta, puede instalar el complemento yum-downloadonly y luego puede
yum instalar -y ImageMagick --descargar solamente
esto simplemente descargará todas las dependencias que faltan sin instalarlas.
para encontrar dependencias antes de instalar un rpm
rpm -qpR algo.rpm
enumerará todas las dependencias y luego podrá buscar para ver si existen, pero eso suena demasiado complicado. probablemente yum --downloadonly será suficiente.
Respuesta3
Te sugiero que uses autoconf
; hay herramientas dentro que verificarán automáticamente las bibliotecas que existen, intentando compilar un programa ficticio contra la biblioteca. http://www.gnu.org/software/autoconf/manual/ Un ejemplo:
AC_CHECK_LIB(MagickWand, GetMagickModule)
Esto intentaría compilar un programa simple que llamaría GetMagickModule()
; no intenta ejecutar el programa, solo compilarlo.
El autoconf
programa genera un configure
programa que sería llamado para verificar las bibliotecas. Su objetivo principal es generar eventualmente un Makefile, pero ese no tiene por qué ser su objetivo; el configure
programa podría simplemente buscar bibliotecas y devolver un error si no existen.