为什么我不能同时安装 libdwarf.so.0 和 libdwarf.so.1?

为什么我不能同时安装 libdwarf.so.0 和 libdwarf.so.1?

我正在尝试从源代码构建 hhvm 以及从软件包安装它(以比较差异)。从源代码构建时,它需要最新版本的 libdwarf,因此我下载了一个 rpm 并安装了它。然后我构建了 hhvm,它运行正常。然后我尝试从存储库安装旧版本的 hhvm,并收到此错误。

Error: Package: hhvm-3.10.1-1.el7.centos.x86_64 (hhvm)
           Requires: libdwarf.so.0()(64bit)
           Available: libdwarf-20130207-4.el7.x86_64 (base)
               libdwarf.so.0()(64bit)
           Installed: libdwarf-20160115-2.fc24.x86_64 (@/libdwarf-20160115-2.fc24.x86_64)
              ~libdwarf.so.1()(64bit)

因此,看来 repo 版本依赖于 libdwarf.so.0,而我已安装 libdwarf.so.1。为什么这两个软件包会发生冲突?package.so.x版本号的意义不就是为了可以同时安装两个版本吗?

答案1

您为与您正在运行的 Linux 发行版完全不同的发行版安装了 libdwarf 包。这不能保证能正常工作。

RPM 只是一种打包格式,无法保证软件包内容适合您的系统。软件包内的依赖关系信息可以做到这一点,这就是您无法执行此安装的原因。理论上您可以安装一个库的多个版本,但实际上,除非以非常严格控制的方式(例如软件集合)完成,否则这只会导致问题。

要修复此问题,请返回正确的libdwarf 包,它是 CentOS 自带的包。

yum downgrade libdwarf

相关内容