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.
- 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 comorpm -qa | grep -i apr
. - 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 libapr
e deverá mostrar algo como "/usr/lib/libapr-1.2.3.so" - 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. - 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/httpd
e 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*.la
e 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á.