Як дізнатись номер версії встановленої бібліотеки?


12

Питання, що стосується RedHat / CentOS. Я трохи заплутався між пакунком і бібліотекою та способом прив’язати їх до фіксованої версії.

У останніх версіях libxcb, що впливає на мої програми C, є помилка перекидання 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 та кількістю, яку я хочу ...

Відповіді:


14

Якщо ви хочете знати, яка версія встановлена , просто запустіть:

rpm -q libxcb-devel

Якщо ви хочете запобігти оновленням цього пакету, можете додати його до excludeконфігурації yum . Додайте до mainрозділу в /etc/yum.conf:

exclude=libxcb-devel

Версія бібліотеки (наприклад, в libxcb.so.1.1.0) дуже рідко відстежує версію пакета і призначена для відстеження змін API.


1
# yum remove libxcb-devel
# rpm -Uvh --oldpackage libxcb-1.5-1.el6.i686.rpm 

Це два різних пакети. Версія -devel призначена для компіляції, пакет libxcb без -devel - це те, проти чого будуть працювати програми.

Оскільки ви видалили версію -devel, що нічого не встановлено, то "yum info" показує лише останню доступну версію (ви можете використовувати опцію --showduplicates для перегляду всіх версій). Якщо ви хочете зупинити його оновлення, я рекомендую встановити / використовувати плагін версії для пакету libxcb ... хоча це можна зробити вручну, використовуючи виключення.

Також використовуйте rpm безпосередньо, ви можете просто використовувати: yum downgrade blah.rpm


yum пониження не здалося доступним. Це недавнє доповнення? Дякую за пораду версії, я ніколи про неї не чув.
Дарго

Видалено розробку, щоб уникнути ризиків статичного зв’язку, я думаю.
Дарго

1
yum пониження доступне щонайменше RHEL6
doktor5000
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.