通过 yum 安装特定的依赖版本

通过 yum 安装特定的依赖版本

我试图在 CentOS 7 服务器上安装一堆开源库,它们都形成了一个相当复杂的相互依赖网络。我需要确保不存在版本控制冲突(“库地狱”),比如说,LibA依赖LibB v.1.2但我LibB v0.9错误地安装了。

所以我需要:

  1. 找出我需要的每个库的版本(以便它们都依赖于彼此的正确版本);进而
  2. 用于yum安装正确的版本

尽管我稍后会提到特定的库,但我认为这个问题可以概括为任何库之间存在相互依赖性的场景yum

具体来说,我正在寻找安装:

  • libpng-dev(PNG库)
  • libjpeg-dev(JPEG 库)
  • libtiff-dev(TIFF 库)
  • libopencv-dev(OpenCV)

问题是,OpenCV 依赖于前三个。因此,我需要确保yum为我安装的 PNG、JPEG 和 TIFF 库的版本也与 OpenCV 期望的版本兼容。

另外,对于这 4 个库中的每一个,我想运行一个命令来验证我的系统上当前安装的确切版本。

关于我可以从哪里开始有什么想法吗?提前致谢!

答案1

据我了解,你的问题分为两部分:

  1. 如何找到每个库所需的版本?
  2. 如何安装正确的版本?

回答(1):yum deplist $PACKAGE将有助于显示需要哪些依赖项。

[root@centos7 ~]# rpm -qi libopencv-dev
package libopencv-dev is not installed
[root@centos7 ~]# yum deplist libopencv-dev
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: muug.ca
 * extras: mirror.its.sfu.ca
 * updates: mirror.its.sfu.ca
[root@centos7 ~]# rpm -qi expect
package expect is not installed
[root@centos7 ~]# yum deplist expect
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
 * base: muug.ca
 * extras: mirror.its.sfu.ca
 * updates: mirror.its.sfu.ca
package: expect.x86_64 5.45-14.el7_1
  dependency: /bin/sh
   provider: bash.x86_64 4.2.46-20.el7_2
  dependency: libc.so.6(GLIBC_2.14)(64bit)
   provider: glibc.x86_64 2.17-106.el7_2.8
  dependency: libdl.so.2()(64bit)
   provider: glibc.x86_64 2.17-106.el7_2.8
  dependency: libm.so.6()(64bit)
   provider: glibc.x86_64 2.17-106.el7_2.8
  dependency: libm.so.6(GLIBC_2.2.5)(64bit)
   provider: glibc.x86_64 2.17-106.el7_2.8
  dependency: libtcl8.5.so()(64bit)
   provider: tcl.x86_64 1:8.5.13-8.el7
  dependency: libutil.so.1()(64bit)
   provider: glibc.x86_64 2.17-106.el7_2.8
  dependency: libutil.so.1(GLIBC_2.2.5)(64bit)
   provider: glibc.x86_64 2.17-106.el7_2.8
  dependency: rtld(GNU_HASH)
   provider: glibc.x86_64 2.17-106.el7_2.8
   provider: glibc.i686 2.17-106.el7_2.8
[root@centos7 ~]# 

对于答案(2),答案为这个问题有关“如何指示 yum 安装特定版本的软件包 X?”的详细信息

相关内容