dar*_*aud 16 yum rhel shared-library
与 RedHat/CentOS 相关的问题。我对包和库以及如何将它们固定到固定版本之间有点困惑。
在最近的 libxcb 版本中有一个 X11 翻转错误会影响我的 C 程序。libxcb-1.5-1 没有那个错误。
所以我做了:
# yum remove libxcb-devel
# rpm -Uvh --oldpackage libxcb-1.5-1.el6.i686.rpm
Run Code Online (Sandbox Code Playgroud)
现在错误消失了,我的软件运行良好。
快进几周,错误又回来了。
# yum info libxcb-devel
Loaded plugins: refresh-packagekit, security
Available Packages
Name : libxcb-devel
Arch : i686
Version : 1.9.1
Release : 2.el6
Size : 1.0 M
Repo : sl-security
Run Code Online (Sandbox Code Playgroud)
但是是安装的版本还是通过 repo 可用的版本?我如何知道当前安装的是哪个版本的 libxcb?
$ ll /usr/lib/libxcb.so*
lrwxrwxrwx 1 root root 15 Aug 6 03:38 /usr/lib/libxcb.so.1 -> libxcb.so.1.1.0*
-rwxr-xr-x 1 root root 130752 Oct 14 2014 /usr/lib/libxcb.so.1.1.0*
$ readelf -d /usr/lib/libxcb.so.1.1.0 | grep SONAME
0x0000000e (SONAME) Library soname: [libxcb.so.1]
Run Code Online (Sandbox Code Playgroud)
所以我在 yum 显示的版本号、.so 上的数字和我想要的数字之间感到困惑......
lar*_*sks 16
如果你想知道安装了什么版本,只需运行:
rpm -q libxcb-devel
Run Code Online (Sandbox Code Playgroud)
如果你想阻止升级到这个包,你可以将这个包添加到 yumexclude
配置中。将以下内容添加到 中的main
部分/etc/yum.conf
:
exclude=libxcb-devel
Run Code Online (Sandbox Code Playgroud)
库版本(例如 in libxcb.so.1.1.0
)很少跟踪包版本,并且旨在跟踪 API 更改。