+ Responder ao Tópico



  1. #1

    Padrão 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

  2. #2

    Padrão 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



  3. #3

    Padrão 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

  4. #4

    Padrão Localizar Biblioteca e saber Versao

    valeu kra, vou dar uma fucada nesses paths hehee

    []'s



  5. #5

    Padrão 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

  6. #6

    Padrão Localizar Biblioteca e saber Versao

    Se não encontrar o arquivo ele pára a execução ?
    Acho que não entendi.



  7. #7

    Padrão 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.

  8. #8

    Padrão Localizar Biblioteca e saber Versao

    lsof | grep ssh

    Existe um comando só pra isto ruyneto, estou tentando lembrá-lo.



  9. #9

    Padrão 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

  10. #10

    Padrão 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



  11. #11

    Padrão 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.

  12. #12

    Padrão 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



  13. #13

    Padrão 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

  14. #14

    Padrão 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.



  15. #15

    Padrão 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!!!

  16. #16

    Padrão 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