script para verificar bibliotecas de sistema operacional no RedHat 5.xe 6.x

script para verificar bibliotecas de sistema operacional no RedHat 5.xe 6.x

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 lddcomando:

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 autoconfprograma gera um configureprograma que seria chamado para verificar as bibliotecas. Seu objetivo principal é eventualmente gerar um Makefile, mas esse não precisa ser seu objetivo; o configureprograma poderia apenas verificar bibliotecas e retornar um erro se elas não existirem.

informação relacionada