Bagaimana cara mengetahui nomor versi pustaka yang diinstal?


12

Pertanyaan yang relevan dengan RedHat / CentOS. Saya agak bingung antara paket dan pustaka dan bagaimana menyematkannya ke versi yang sudah diperbaiki.

Ada bug rollover X11 di versi libxcb terbaru yang memengaruhi program C saya. libxcb-1.5-1 tidak memiliki bug itu.

Jadi saya melakukannya:

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

Dan sekarang bug sudah hilang dan perangkat lunak saya berfungsi dengan baik.

Maju cepat beberapa minggu dan bug kembali.

# 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

Tetapi apakah itu versi yang diinstal atau versi yang tersedia melalui repo? Bagaimana saya tahu versi libxcb mana yang saat ini diinstal?

$ 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]

Jadi saya bingung antara nomor versi yang ditunjukkan oleh yum, nomor pada .so dan nomor yang saya inginkan ...

Jawaban:


14

Jika Anda ingin tahu versi apa yang diinstal , jalankan saja:

rpm -q libxcb-devel

Jika Anda ingin mencegah upgrade ke paket ini, Anda dapat menambahkan paket ke excludekonfigurasi yum . Tambahkan yang berikut ke mainbagian di /etc/yum.conf:

exclude=libxcb-devel

Versi pustaka (misalnya, dalam libxcb.so.1.1.0) sangat jarang melacak versi paket, dan dimaksudkan untuk melacak perubahan API.


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

Ini adalah dua paket berbeda. Versi -devel untuk kompilasi, paket libxcb tanpa -devel adalah aplikasi yang akan dijalankan.

Karena Anda menghapus versi -vel yang tidak ada yang diinstal, jadi "info yum" hanya menampilkan versi terbaru yang tersedia (Anda dapat menggunakan opsi --showduplicates untuk melihat semua versi). Jika Anda ingin menghentikannya, saya sarankan untuk menginstal / menggunakan plugin versilock pada paket libxcb ... meskipun itu dilakukan secara manual menggunakan tidak termasuk.

Juga gunakan rpm secara langsung, Anda bisa menggunakan: yum downgrade blah.rpm


tampaknya penurunan peringkat tidak tersedia. Apakah itu tambahan terbaru? Terima kasih atas tip versinya, saya belum pernah mendengarnya.
— dargaud

Menghapus devel untuk menghindari risiko tautan statis, saya kira.
— dargaud

1
yum downgrade tersedia sejak setidaknya RHEL6
— doktor5000
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.