ฉันจะค้นหาหมายเลขรุ่นของไลบรารีที่ติดตั้งได้อย่างไร


12

คำถามที่เกี่ยวข้องกับ RedHat / CentOS ฉันสับสนเล็กน้อยระหว่างแพ็คเกจและไลบรารีและวิธีการตรึงให้เป็นรุ่นคงที่

มีข้อบกพร่อง X11 แบบโรลโอเวอร์ในเวอร์ชันล่าสุดของ libxcb ที่มีผลต่อโปรแกรม 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

แต่เป็นรุ่นที่ติดตั้งหรือรุ่นที่มีให้ผ่าน repo หรือไม่ ฉันจะบอกได้อย่างไรว่า 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 เพื่อดูรุ่นทั้งหมด) หากคุณต้องการหยุดอัปเกรดฉันขอแนะนำให้ติดตั้ง / ใช้ปลั๊กอิน versionlock บนแพ็คเกจ libxcb ... แม้ว่าจะเป็นการยกเว้นด้วยตนเองก็ตาม

นอกจากนี้ยังใช้รอบต่อนาทีโดยตรงคุณสามารถใช้: yum downgrade blah.rpm


ดูเหมือนจะไม่มีการลดระดับ yum นั่นคือการเพิ่มเมื่อเร็ว ๆ นี้? ขอบคุณสำหรับเคล็ดลับ versionlock ฉันไม่เคยได้ยินมาก่อน
dargaud

เอา devel ออกเพื่อหลีกเลี่ยงความเสี่ยงของการเชื่อมโยงคงที่ฉันเดา
dargaud

1
การลดระดับ yum มีให้ตั้งแต่อย่างน้อย RHEL6
doktor5000
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.