Kurulu bir kütüphanenin sürüm numarasını nasıl bulabilirim?


12

RedHat / CentOS ile ilgili soru. Paket ve kütüphane ile bunları sabit bir sürüme nasıl sabitleyeceğim konusunda biraz kafam karıştı.

Son libxcb sürümlerinde C programlarımı etkileyen bir X11 rollover hatası var. libxcb-1.5-1 bu hataya sahip değil.

Ben de yaptım:

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

Ve şimdi hata gitti ve yazılımım iyi çalışıyor.

Birkaç hafta ileri sar ve hata geri döndü.

# 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

Ancak yüklü sürüm veya sürüm repo aracılığıyla kullanılabilir mi? Şu anda yüklü olan libxcb sürümünün nasıl olduğunu nasıl anlayabilirim?

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

Bu yüzden yum tarafından gösterilen sürüm numarası, .so'daki sayı ve istediğim sayı arasında kafam karıştı ...

Yanıtlar:


14

Hangi sürümün yüklü olduğunu bilmek istiyorsanız , şunu çalıştırın:

rpm -q libxcb-devel

Bu paketin yükseltilmesini önlemek istiyorsanız, paketi yum excludeyapılandırmasına ekleyebilirsiniz . Aşağıdaki mainbölüme aşağıdakileri ekleyin /etc/yum.conf:

exclude=libxcb-devel

Kitaplık sürümü (örneğin, içinde libxcb.so.1.1.0) çok nadiren paket sürümünü izler ve API değişikliklerini izlemeyi amaçlar.


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

Bunlar iki farklı paket. -Devel sürümü derleme içindir, -devel içermeyen libxcb paketi uygulamaların çalışacağı şeydir.

Hiçbir şey yüklü olmayan -devel sürümünü kaldırdığınız için, "yum info" sadece en son sürümü gösterir (tüm sürümleri görmek için --showduplicates seçeneğini kullanabilirsiniz). Yükseltmeyi durdurmak istiyorsanız, libxcb paketinde versionlock eklentisini yüklemenizi / kullanmanızı öneririm ... hariç tutulanlar kullanılarak manuel olarak yapılabilir.

Ayrıca doğrudan rpm kullanın, şunları kullanabilirsiniz: yum downgrade blah.rpm


yum downgrade kullanılabilir görünmüyordu. Bu yeni bir ek mi? Versionlock ipucu için teşekkürler, hiç duymamıştım.
dargaud

Statik bağlanma risklerinden kaçınmak için geliştirici kaldırıldı, sanırım.
dargaud

1
yum downgrade en az RHEL6'dan beri mevcuttur
doktor5000
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.