Localizar Biblioteca e saber Versao
preciso fazer uma verificacao no sistema, para saber se algumas bibliotecas estaum instaladas...
como naum sei mexer com autoconf e automake (ainda ehhehe) alguem sabe de alguma maneira d ver isso??
tipow eu quero saber se ela estah instalada e a versao
bibliotecas
zlib
libpng
libjpeg
freetype
gd
mhash
libmcrypt
mcrypt
sei fazer isso pelo rh usando o rpm -q, mas quero algo generico, pra usado em tdos os sistemas...
pensei em algum find e talz.. mas como saber a versao??
qq ideia eh bem vinda hehhee
[]'s
Localizar Biblioteca e saber Versao
falae demiurgo....cara eu acho q se vc olha em /lib e /usr/lib (ou se vc usar netbsd, tbm em /usr/pkg/lib) vc vai achar essas libs por la....e ela sempre tem um link(ou eh o proprio arquivo) com a versao dela...tipo
Código :
-rwxr-xr-x 1 root root 196132 2004-05-02 18:50 libpng.so.3.1.2.5
Localizar Biblioteca e saber Versao
e otra coisa...eu sei q devem existir jeitos menos estranhos de se fazer isso.....mas eu tava olhando o arquivo /usr/include/zlib.h e olha a 1° linha dele:
Código :
/* zlib.h -- interface of the 'zlib' general purpose compression library version 1.2.1.1, January 9th, 2004
Localizar Biblioteca e saber Versao
valeu kra, vou dar uma fucada nesses paths hehee
[]'s
Localizar Biblioteca e saber Versao
fiz uma script q verifica se existe o arquivo e a versao..
a unica falha eh q quando ele naum encontra o arquivo q quero localizar, ela para...
e algumas libs naum tem .h... nesse caso... precico descobrir uma maneira d localiza as bixinhas.... alguem ae tem alguma ideia:
a script eh essa:
Código :
echo "Verificando libpng"
# Localiza o arquivo, separa somente o primeiro resultado, lista o conteudo do arquivo,
# separa somente as q contem "libpng version" e joga a saida no arquivo teste
cat $(find /usr -name "png.h" | head -1) | grep 'libpng version' > teste
# Separa somente a primeira linha
awk 'NR == 1' teste > teste1
# Separa somente o valor do versao
awk -F" " '{ print $4 }' teste1 > teste
# Retira o ponto no segundo caracter
sed 's/.//2' teste > teste1
# Retira o ponto no terceiro caracter
sed 's/.//3' teste1 > teste
# Variavel para verificar a Existencia e Versao do software
VAR1=`cat teste`
if [ -z "$VAR1" ]; then
install_libpng
else
#Verifica se a versao eh menor que a necessaria
if [ $VAR1 -lt 128 ]
then
install_libpng
else
find /usr -name "libpng.so" | head -1 > teste2
cat teste2 | sed "s#/libpng.so##g" > teste3
var1=`cat teste3`
addpath libpng $var1
rm -f teste2
rm -f teste3
fi
fi
rm -f teste
rm -f teste1
se a biblioteca existir ela grava o caminho da biblioteca num arquivo d teste
[]'s
Localizar Biblioteca e saber Versao
Se não encontrar o arquivo ele pára a execução ?
Acho que não entendi.
Localizar Biblioteca e saber Versao
Cara to com um problema parecido gostaria de saber alem das versoes das bibliotecas tb as versoes dos programas que tao rodando, exemplo se tem 2 versoes do openssl, qual que taria rodando, alguems abe como fazer?/
falows
PS: prescisaria mais isso pro freebsd, pois to com um rolo entre source e ports e gostaria de saber qual das duas que roda mesmo.
Localizar Biblioteca e saber Versao
lsof | grep ssh
Existe um comando só pra isto ruyneto, estou tentando lembrá-lo.
Localizar Biblioteca e saber Versao
Citação:
Postado originalmente por ph0enix
lsof | grep ssh
Existe um comando só pra isto ruyneto, estou tentando lembrá-lo.
Vlw ae, vo tentar esse, mas se lembrar eh de grande ajuda.
falows
Localizar Biblioteca e saber Versao
ph0enix, apos testar o comando ele nao me retornou qual versao do sshd ele roda, e sim as bibliotecas que o ssh usa ( pelo menos eu acho) queria uma programa que a saida fosse por exemplo pro sshd daria openssh versao 3.6 algo dop tipo.
falows
Localizar Biblioteca e saber Versao
ssh -V ?
Tem um comando que mostra todos arquivos/pipes/sockets que um processo está utilizando, deve dar uma ajuda melhor, porém eu não recordo agora.
Dêem uma pesquisada, vou para uma reunião, volto em 20 minutos.
Abraços.
Localizar Biblioteca e saber Versao
Citação:
Postado originalmente por ph0enix
ssh -V ?
Tem um comando que mostra todos arquivos/pipes/sockets que um processo está utilizando, deve dar uma ajuda melhor, porém eu não recordo agora.
Dêem uma pesquisada, vou para uma reunião, volto em 20 minutos.
Abraços.
Blz, eh que assim nao presciso so de ssh, prescisaria fazer de todos os serviços rodando, ae ia dar um ps filtrando no script e depois ia passar a saida pra outro script tratar saindo as versoes, inclusive das bibliotecas.
falows
Localizar Biblioteca e saber Versao
Citação:
Postado originalmente por ph0enix
Se não encontrar o arquivo ele pára a execução ?
Acho que não entendi.
naum sei o pq, mas quando ele naum encontra o arquivo, ao inves d atender a primeira regra do if, d se for nulo, instala... ele para d executar o script, naum dah erro nenhum, mas naum sai do lugar :(
Localizar Biblioteca e saber Versao
Citação:
Postado originalmente por demiurgo
Citação:
Postado originalmente por ph0enix
Se não encontrar o arquivo ele pára a execução ?
Acho que não entendi.
naum sei o pq, mas quando ele naum encontra o arquivo, ao inves d atender a primeira regra do if, d se for nulo, instala... ele para d executar o script, naum dah erro nenhum, mas naum sai do lugar :(
Ele chega a chamar a função 'install_libpng' ?
Coloque echo's antes da chamada, depois da chamada, e dentro da funcao pra verificar onde está parando.
Outro detalhe, é melhor usar ponto-e-virgula ';' no final de cada comando.
Localizar Biblioteca e saber Versao
Citação:
Postado originalmente por ph0enix
Citação:
Postado originalmente por demiurgo
Citação:
Postado originalmente por ph0enix
Se não encontrar o arquivo ele pára a execução ?
Acho que não entendi.
naum sei o pq, mas quando ele naum encontra o arquivo, ao inves d atender a primeira regra do if, d se for nulo, instala... ele para d executar o script, naum dah erro nenhum, mas naum sai do lugar :(
Ele chega a chamar a função 'install_libpng' ?
Coloque echo's antes da chamada, depois da chamada, e dentro da funcao pra verificar onde está parando.
Outro detalhe, é melhor usar ponto-e-virgula ';' no final de cada comando.
ele naum chama a funcao 'install_libpng', ele para na hora em q tah fazendo o find e jogando a saida no arquivo 'teste'
vou testar o lance dos ; :)
valeu!!!
Localizar Biblioteca e saber Versao
fiz uma alteracao na script q resolver o bug hehee
Código :
cd $dir
echo "Verificando libpng"
# Localiza o arquivo, separa somente o primeiro resultado, lista o conteudo do arquivo,
# separa somente as q contem "libpng version" e joga a saida no arquivo teste
find /usr -name "png.h" > teste ;
# Variavel para verificar a Existencia e Versao do software
VAR1=`cat teste`
if [ -z "$VAR1" ]; then
install_libpng
else
#Verifica se a versao eh menor que a necessaria
# Separa somente a primeira linha
echo "separando a primeira linha"
awk 'NR == 1' teste > teste1 ;
echo "cat"
grep 'libpng version' $(cat teste1) > teste ;
# Separa somente a primeira linha
echo "separando a primeira linha"
awk 'NR == 1' teste > teste1
# Separa somente o valor do versao
echo "separando o valor da versao"
awk -F" " '{ print $4 }' teste1 > teste
# Retira o ponto no segundo caracter
echo "retirando o primeiro ponto"
sed 's/.//2' teste > teste1
# Retira o ponto no terceiro caracter
echo "retirando o segundo ponto"
sed 's/.//3' teste1 > teste
VAR1=`cat teste`
if [ $VAR1 -lt 128 ]
then
install_libpng
else
find /usr -name "libpng.so" | head -1 > teste2
cat teste2 | sed "s#/libpng.so##g" > teste3
var1=`cat teste3`
addpath libpng $var1
rm -f teste2
rm -f teste3
fi
fi
rm -f teste
rm -f teste1
[]'s