Вопрос актуален для RedHat / CentOS. Я немного запутался между пакетом и библиотекой и тем, как прикрепить их к фиксированной версии.
В последних версиях libxcb есть ошибка X11, которая влияет на мои программы на Си. В libxcb-1.5-1 такой ошибки нет.
Так я и сделал:
# yum remove libxcb-devel
# rpm -Uvh --oldpackage libxcb-1.5-1.el6.i686.rpm
И теперь ошибка исчезла, и мое программное обеспечение работает нормально.
Перемотка вперед на несколько недель, и ошибка вернулась.
# 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
Но это установленная версия или версия доступна через репо? Как я могу узнать, какая версия 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]
Так что я запутался между номером версии, показанным yum, номером в .so и номером, который я хочу ...