在升级 Apache 后尝试执行 subversion 命令时出现以下错误:
svnadmin: error while loading shared libraries: libaprutil-0.so.0: cannot open shared object file: No such file or directory
如果我运行:ldd'which svn'它会显示以下内容未找到:libaprutil-0.so.0 => 未找到
当我查看它应该所在的文件夹时,我发现随着升级它已更改为:libaprutil-1.so.0,以前是 libaprutil-0.so.0。
我可以告诉 SVN 寻找新文件名吗?
答案1
这不是告诉它在哪里找到新文件名的问题,而是让它根据文件的正确版本进行编译的问题。
看来您需要升级更多软件。Apache 升级了其他程序使用的某些库,因此您需要使用新库版本的其他程序的版本。
我建议先使用发行版的软件包管理器更新系统上的所有内容,尽管它应该已经帮你搞定了。也许完整的系统更新将有助于解决这些问题。
如果您手动编译并安装了 apache,那么您还需要对任何依赖它的软件(例如 svn)进行同样的操作,以便它们都针对相同的库进行编译。
答案2
错误消息很棘手,因为它忽略了告诉您它真正想要的是 RPM 中 lib 的特定体系结构版本apr-util
。可以通过运行 -- 来确认这一点strace svn
,在我的情况下,它显示缺少 lib64 版本。为了在旧的 CentOS 5.8 机器上解决这个问题,我这样做了sudo yum install apr-util
,但对于您的发行版,情况可能有所不同。令人困惑的是,之后我列出了两个版本的 apr-util,但没有明显的线索表明一个是 32 位,另一个是 64 位。