我需要找出哪个版本的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使用的版本
你不提供太多的信息,但有几种方法可以尝试。
dpkg -l "*apr*" 。 RPM会像rpm -qa | grep -i apr rpm -qa | grep -i apr 。 locate libapr ,它应该显示“/usr/lib/libapr-1.2.3.so” ldd /usr/sbin/httpd (或者你的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版本