¿Cómo saber la versión instalada de APR?

¿Cómo saber la versión instalada de APR?

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.

  1. 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í como rpm -qa | grep -i apr.
  2. 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 libapry debería mostrar algo como "/usr/lib/libapr-1.2.3.so"
  3. 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.
  4. 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/httpdy 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*.lay 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á.

información relacionada