如何找出已安装的APR版本?

我需要找出哪个版本的Apache Portable Runtime安装在特定的服务器上。

那么如何在不访问日志文件的情况下做到这一点呢?

写一行C:

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

编译(find你的libapr的好path)

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

执行

 # ./apr 1.3.3 

PS:findlibapr你可以试试

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

或者在httpd上运行ldd,大卫说如果你想findapache使用的版本

你不提供太多的信息,但有几种方法可以尝试。

  1. 问你的包pipe理器。 这假设你已经通过你的包pipe理系统安装了一个全系统的libapr。 Debian将是dpkg -l "*apr*" 。 RPM会像rpm -qa | grep -i apr rpm -qa | grep -i apr
  2. 当然,你可能已经从源代码安装它,在这种情况下,库可能有文件名中编码的版本号。 运行locate libapr ,它应该显示“/usr/lib/libapr-1.2.3.so”
  3. 也许这没有find它。 试试ldd /usr/sbin/httpd (或者你的APR使用二进制文件),你会看到你的二进制文件将使用什么库文件。 这也应该显示版本号,或者将名称中的版本号显示到文件的符号链接的位置。
  4. 最后,你的二进制文件可能会有静态链接的APR。你可以判断上面的ldd是否在列表中没有APR。 您可以通过运行strings /usr/sbin/httpd并查找可能的版本号来获取版本号。 如果您没有带有编码到其中的版本号的.so文件,也可以执行此操作。
 $ find / -name *apr* 2>/dev/null 1>/tmp/apr-findings $ less /tmp/apr-findings 

这帮助了我,因为它是如此糟糕的logging。 我不知道有什么更好的解决办法。
如果您发现一个名为libapr*.la的文件,并且无法找出其版本号,请查看它。 在我的情况下是这样的:

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

如果你只是想找出哪个版本与Apache链接,/ usr / local / apache2 / bin / httpd -V会告诉你。

在windows平台上,在apache bin文件夹中检查这个文件: apr-1-config.pl

特别是,apr版本string存储在这一行: my ${APR_DOTTED_VERSION} = q[1.4.5];

所以,1.4.5是你当前的apr版本