मैं एक स्थापित पुस्तकालय के संस्करण संख्या का पता कैसे लगाऊँ?


12

RedHat / CentOS से संबंधित प्रश्न। मैं पैकेज और लाइब्रेरी के बीच थोड़ा भ्रमित हूं और उन्हें एक निश्चित संस्करण में कैसे पिन करूं।

हाल के libxcb संस्करणों में एक X11 रोलओवर बग है जो मेरे C कार्यक्रमों को प्रभावित करता है। 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कॉन्फ़िगरेशन में जोड़ सकते हैं । निम्नलिखित को mainअनुभाग में जोड़ें /etc/yum.conf:

exclude=libxcb-devel

लाइब्रेरी संस्करण (जैसे, libxcb.so.1.1.0) बहुत कम ही पैकेज संस्करण को ट्रैक करता है, और एपीआई परिवर्तनों को ट्रैक करने के लिए होता है।


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

ये दो अलग-अलग पैकेज हैं। -Dvel संस्करण के विरुद्ध संकलन के लिए है, libxcb पैकेज बिना -Dvel के जो अनुप्रयोग के विरुद्ध चल रहा है।

क्योंकि आपने -Dvel संस्करण को हटा दिया है जो कि कुछ भी स्थापित नहीं है, इसलिए "yum info" आपको केवल नवीनतम उपलब्ध संस्करण दिखाता है (आप सभी संस्करणों को देखने के लिए --showduplicates विकल्प का उपयोग कर सकते हैं)। यदि आप इसे अपग्रेड करना बंद करना चाहते हैं, तो मैं libxcb पैकेज पर वर्जनलॉक प्लगइन को इंस्टॉल / उपयोग करने की सलाह दूंगा ... हालाँकि इसे मैन्युअल रूप से बाहर रखा गया है।

सीधे आरपीएम का उपयोग करें, आप बस उपयोग कर सकते हैं: यम डाउनग्रेड ब्लाह। आरपीएम


यम डाउनग्रेड उपलब्ध नहीं था। क्या यह एक हालिया जोड़ है? वर्जनलॉक टिप के लिए धन्यवाद, मैंने इसके बारे में कभी नहीं सुना।
२१:१५ पर दरगाह

मुझे लगता है कि स्थैतिक लिंकिंग के जोखिम से बचने के लिए हटा दिया गया है, मुझे लगता है।
dargaud

1
यम डाउनग्रेड कम से कम RHEL6
doktor5000
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.