Como descobrir a versão instalada do APR?

Como descobrir a versão instalada do APR?

Preciso descobrir qual versão do Apache Portable Runtime está instalada em um servidor específico.

Então, como posso fazer isso sem acesso aos arquivos de log?

Responder1

Escreva uma linha de C:

# cat apr.c
int main(void) {
        printf("%s\n",apr_version_string());
}

Compilar (encontre o bom caminho para sua libapr)

# gcc -o apr apr.c /usr/pkg/lib/libapr-1.a

executar

# ./apr
1.3.3

PS: para encontrar o libapr você pode tentar

ls /usr/lib/libapr*; ls /usr/local/lib/libapr*;ls /lib/libapr*;locate libapr; ...

ou execute ldd sobre httpd como David diz se quiser encontrar a versão usada pelo Apache

Responder2

Você não fornece muitas informações, mas existem vários métodos que você pode tentar.

  1. Pergunte ao seu gerenciador de pacotes. Isso pressupõe que você tenha um libapr em todo o sistema instalado através do seu sistema de gerenciamento de pacotes. Debian seria dpkg -l "*apr*". RPM seria algo como rpm -qa | grep -i apr.
  2. Claro, você pode ter instalado a partir do código-fonte; nesse caso, a biblioteca pode ter o número da versão codificado no nome do arquivo. Execute locate libapre deverá mostrar algo como "/usr/lib/libapr-1.2.3.so"
  3. Talvez isso não tenha encontrado. Experimente ldd /usr/sbin/httpd(ou qualquer que seja o seu APR usando binário) e você verá qual arquivo de biblioteca seu binário usará. Isso também deve mostrar o número da versão ou a localização de um link simbólico para o arquivo com um número de versão no nome.
  4. Finalmente, é possível que seu binário tenha APR vinculado estaticamente. Você pode saber se o ldd acima não tinha APR na lista. Você pode obter um número de versão executando strings /usr/sbin/httpde procurando um número de versão que pareça provável. Você também pode fazer isso se não tiver um arquivo .so com o número da versão codificado nele.

Responder3

$ find / -name *apr* 2>/dev/null 1>/tmp/apr-findings
$ less /tmp/apr-findings

Isso me ajudou, porque estava muito mal documentado. Não conheço nenhuma solução melhor.
Se você encontrar um arquivo nomeado libapr*.lae não conseguir descobrir seu número de versão, verifique-o. No meu caso é algo assim:

# Version information for libapr-0.
current=9
age=9
revision=4

Responder4

Se você está apenas tentando descobrir qual versão está vinculada ao Apache, /usr/local/apache2/bin/httpd -V lhe dirá.

informação relacionada