Enviamos o ImageMagick com nosso produto. Precisa de algumas 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 uma maneira padrão de verificar se essas bibliotecas já estão presentes no sistema operacional host RedHat?
Pesquisar no SO e no Google leva a comandos como
pkg-config, localizar e qual
Alguém os usou com sucesso?
Responder1
Experimente o ldd
comando:
ldd ImageMagick
imprime o objeto dinâmico e compartilhado, as bibliotecas às quais o programa ImageMagick faz referência e se as bibliotecas foram encontradas ou não.
Responder2
você pode simplesmente usar o yum para instalar e ele mostrará as dependências ausentes.
se você quiser apenas saber o que está faltando, você pode instalar o plugin yum-downloadonly, então você pode
yum instalar -y ImageMagick --downloadonly
isso apenas baixará todas as dependências ausentes sem instalá-las.
para encontrar dependências antes de instalar um rpm
rpm -qpR alguma coisa.rpm
listará todas as dependências e você poderá pesquisar para ver se elas existem, mas isso parece muito complicado. provavelmente yum --downloadonly será suficiente.
Responder3
Eu sugiro que você use autoconf
; existem ferramentas internas que verificam automaticamente as bibliotecas existentes, tentando compilar um programa fictício na biblioteca. http://www.gnu.org/software/autoconf/manual/ Um exemplo:
AC_CHECK_LIB(MagickWand, GetMagickModule)
Isso tentaria compilar um programa simples que chamaria GetMagickModule()
- ele não tentaria executar o programa, apenas compilá-lo.
O autoconf
programa gera um configure
programa que seria chamado para verificar as bibliotecas. Seu objetivo principal é eventualmente gerar um Makefile, mas esse não precisa ser seu objetivo; o configure
programa poderia apenas verificar bibliotecas e retornar um erro se elas não existirem.