Respostas:
Para fazer isso de maneira independente da distribuição *, você pode usar o ldconfig com o grep, desta forma:
ldconfig -p | grep libjpeg
Se o libjpeg não estiver instalado, não haverá saída. Se estiver instalado, você receberá uma linha para cada versão disponível.
Substitua libjpeg por qualquer biblioteca desejada e você tem uma maneira genérica e independente de distribuição * de verificar a disponibilidade da biblioteca.
Se, por algum motivo, o caminho para o ldconfig não estiver definido, você pode tentar invocá-lo usando o caminho completo, normalmente /sbin/ldconfig
.
** 99% das vezes *
bash: ldconfig: command not found
no Debian x64 Jessie com xfce! Esta é a versão debian recomendada no site debian ...
ldconfig
não está disponível ( command not found
aparece) se você tentar executá-lo sem ser superusuário.
/sbin/ldconfig -p
funciona para mim sem precisar ser raiz.
Você pode verificar com o gerenciador de pacotes da sua distribuição (aptitude, yum, ...), mas como você não deu sua distribuição, não posso dar o comando certo.
Outra maneira pode ser executada gcc -ljpeg
, se você obtiver 'ld: library não encontrado para -ljpeg', significa que o gcc não encontrou a biblioteca (mas isso não significa que não está instalado), se você tiver algo como 'Símbolos indefinidos : "_main", referenciado a partir de: ... 'significa que libjpeg foi encontrado.
locate libjpeg; ls /usr/lib/libjpeg*; ls /lib/libjpeg*
Há outra maneira de descobrir se a lib está instalada no sistema
Há muitas outras maneiras de verificar se, se você nos fornecer mais contexto (por que você precisa verificar se o libjpeg está instalado), poderíamos fornecer a melhor solução para o seu caso específico.
Eu uso o utilitário whereis .
Amostra:
l1feh4ck3r@xxx:~$ whereis libjpeg
libjpeg: /usr/lib/libjpeg.so /usr/lib/libjpeg.a /usr/lib/libjpeg.la
Para distribuição baseada em deb, você pode fazer
dpkg -s packagename
Ou, se você souber apenas o nome do arquivo, use
locate filename
O nome do arquivo é geralmente libsomething.so [.version].
dpkg -s
utilidade limitada, porque deseja o nome do pacote real, que pode diferir sutil ou significativamente da própria biblioteca. Eu usodpkg -s|grep LIBRARY
Nos sistemas baseados no Redhat, é possível usar o pkg-config para verificar se uma biblioteca está instalada ou não. Muitos binários rpm fazem as mesmas verificações antes de prosseguir com a instalação, para que possamos confiar razoavelmente em sua veracidade.
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
Isso é feito por ferramentas de configuração no linux o tempo todo.
Veja este tutorial sobre o autoconf e o KDevelop .
Outros truques usariam comandos como ldconfig
e dpkg
.
Você também pode tentar usar o dpkg para verificar se ele está instalado.
dpkg --list | grep [some_key_words_of_your_lib]
Além disso, no CentOS, você pode tentar isso.
rpm -qa [lib_name]
pkg-config
lugar.