Necesito saber qué versión de Apache Portable Runtime está instalada en un servidor específico.
Entonces, ¿cómo puedo hacer esto sin acceder a los archivos de registro?
Respuesta1
Escribe una línea de C:
# cat apr.c
int main(void) {
printf("%s\n",apr_version_string());
}
Compile (encuentre el buen camino hacia su libapr)
# gcc -o apr apr.c /usr/pkg/lib/libapr-1.a
ejecutar
# ./apr
1.3.3
PD: para encontrar libapr puedes probar
ls /usr/lib/libapr*; ls /usr/local/lib/libapr*;ls /lib/libapr*;locate libapr; ...
o ejecute ldd sobre httpd como dice David si desea encontrar la versión utilizada por Apache
Respuesta2
No proporcionas mucha información, pero hay varios métodos que puedes probar.
- Pregúntele a su administrador de paquetes. Esto supone que tiene instalado libapr en todo el sistema a través de su sistema de administración de paquetes. Debian sería
dpkg -l "*apr*"
. RPM sería algo así comorpm -qa | grep -i apr
. - Por supuesto, es posible que lo haya instalado desde el código fuente, en cuyo caso la biblioteca podría tener el número de versión codificado en el nombre del archivo. Ejecute
locate libapr
y debería mostrar algo como "/usr/lib/libapr-1.2.3.so" - Quizás eso no lo encontró. Pruebe
ldd /usr/sbin/httpd
(o cualquiera que sea su APR usando binario) y verá qué archivo de biblioteca usará su binario. Esto también debería mostrar el número de versión, o mostrará la ubicación de un enlace simbólico al archivo con un número de versión en el nombre. - Finalmente, es posible que su binario tenga APR vinculado estáticamente. Puede saber si ldd anterior no tenía APR en la lista. Es posible que pueda obtener un número de versión ejecutando
strings /usr/sbin/httpd
y buscando un número de versión que parezca probable. También puedes hacer esto si no tienes un archivo .so con el número de versión codificado.
Respuesta3
$ find / -name *apr* 2>/dev/null 1>/tmp/apr-findings
$ less /tmp/apr-findings
Esto me ayudó porque estaba muy mal documentado. No conozco ninguna solución mejor.
Si encuentra un archivo con nombre libapr*.la
y no puede determinar su número de versión, investíguelo. En mi caso es algo como esto:
# Version information for libapr-0.
current=9
age=9
revision=4
Respuesta4
Si solo está intentando averiguar qué versión está vinculada con Apache, /usr/local/apache2/bin/httpd -V se lo dirá.