การติดตั้งแพ็กเกจแอปพลิเคชันบุคคลที่สามบน CentOS 6.4 ล้มเหลวเนื่องจากการพึ่งพา libcrypto.so.10 และ libssl.so.10 ที่ขาดหายไป


16

นี่เป็นคำถามที่ยอมรับได้เกี่ยวกับปัญหาความเข้ากันได้ของไบนารี OpenSSL ระหว่าง Red Hat Enterprise Linux (และสัญญาซื้อขายล่วงหน้า) 6.4 และ 6.5

ปัญหานี้นำไปใช้กับแพ็คเกจของบุคคลที่สามที่หลากหลายไม่ใช่เฉพาะรายการที่อยู่ในคำถามเดิม

ฉันติดตั้ง Percona 5.5 แล้วและกำลังพยายามอัปเกรดเป็น 5.6 แต่ฉันพบปัญหาที่ไม่คาดคิดและฉันติดอยู่กับวิธีการแก้ไขปัญหา

ฉันทำตามคำแนะนำที่http://www.percona.com/doc/percona-server/5.6/upgrading_guide_55_56.html

และลบแพ็กเกจ 5.5 ออกจากนั้นรันคำสั่งต่อไปนี้เพื่ออัพเกรด:

yum install Percona-Server-server-56 Percona-Server-client-56

ข้อผิดพลาดที่ฉันได้รับกลับมาคือ:

Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: Percona-Server-shared-56 for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Running transaction check
---> Package Percona-Server-client-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-server-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64
---> Package Percona-Server-shared-56.x86_64 0:5.6.15-rel63.0.519.rhel6 will be installed
--> Processing Dependency: libssl.so.10(libssl.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Processing Dependency: libcrypto.so.10(libcrypto.so.10)(64bit) for package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64
--> Finished Dependency Resolution
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
Error: Package: Percona-Server-server-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-shared-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libssl.so.10(libssl.so.10)(64bit)
Error: Package: Percona-Server-client-56-5.6.15-rel63.0.519.rhel6.x86_64 (percona)
       Requires: libcrypto.so.10(libcrypto.so.10)(64bit)
 You could try using --skip-broken to work around the problem
** Found 3 pre-existing rpmdb problem(s), 'yum check' output follows:
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16()(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of libmysqlclient.so.16(libmysqlclient_16)(64bit)
perl-DBD-MySQL-4.022-1.el6.rfx.x86_64 has missing requires of mysql

ฉันลองทุกอย่างจากการติดตั้ง openssl และ openssl-devel ซึ่งติดตั้งอย่างถูกต้อง แต่มันยังไม่ทำงาน ความคิดใด ๆ

ฉันใช้ CentOS 6.4:

root@server01 [/]# cat /proc/version
Linux version 2.6.32-279.5.2.el6.x86_64 (mockbuild@c6b10.bsys.dev.centos.org) (gcc version 4.4.6 20120305 (Red Hat 4.4.6-4) (GCC) ) #1 SMP Fri Aug 24 01:07:11 UTC 2012
root@server01 [/]#

CentOS เรียกแพ็คเกจที่คุณต้องการ "openssl-libs"
Bandrami

ขอบคุณมาก. ฉันมองไปรอบ ๆ แต่ไม่พบ CentOS 6.4 สำหรับคุณจะรู้ได้อย่างไรว่าต้องมองที่ไหน
2643870

คำตอบ:


14

สาเหตุของปัญหานี้คือ Red Hat ยากจนเข้ากันได้ binary ของแพคเกจ OpenSSL ระหว่าง 6.4 และ 6.5 ซึ่งเป็นสิ่งที่พวกเขาสัญญาว่าพวกเขาจะไม่ทำ

การแก้ไขปัญหานี้เป็นเรื่องง่าย แต่ขึ้นอยู่กับแอพพลิเคชั่นที่คุณอาจปรับใช้ อย่าลืมสำรองความโกรธแค้นส่วนใหญ่ไว้สำหรับตัวแทน Red Hat ของคุณ (หากคุณมี RHEL)


สาเหตุ

Red Hat อัพเกรดเวอร์ชันของ OpenSSL ใน EL6 จาก 1.0.0 เป็น 1.0.1 ในการอัปเดต 6.5เพื่อแก้ไขคำขอฟีเจอร์เก่า ๆเพื่อเพิ่มการรองรับ cryptograhpy ของวงรีรูปไข่ แพคเกจนี้ไม่รองรับไบนารีอีกต่อไปและโปรแกรมที่สร้างขึ้นจาก OpenSSL 1.0.0 จะต้องสร้างใหม่จากแหล่งที่มากับ 1.0.1

นอกจากว่าคุณกำลังติดตั้งแอปพลิเคชันบุคคลที่สามแน่นอนซึ่งเกือบทุกคนทำ สิ่งเหล่านั้นจะต้องทำการคอมไพล์ซ้ำเช่นกันและ ณ จุดนี้บุคคลที่สามส่วนใหญ่ก็ทำเช่นนั้นและสร้างแพ็คเกจใหม่กับ 6.5 มันเป็นแพ็คเกจเหล่านี้ที่บุคคลที่สามมักจะจัดส่งในวันนี้

มติ

ระบุแพ็คเกจบุคคลที่สามที่ได้รับผลกระทบทั้งหมดและติดต่อผู้จำหน่ายแพ็คเกจบุคคลที่สามเพื่อรับการอัพเดต เมื่อการอัปเดตพร้อมใช้งานสำหรับแพ็คเกจทั้งหมดคุณสามารถอัปเดตระบบของคุณเป็น 6.5 ได้อย่างปลอดภัยติดตั้งการอัปเดตแพ็คเกจบุคคลที่สามในเวลาเดียวกันซึ่งจะแก้ปัญหาให้เสร็จสิ้น

สำหรับแพ็คเกจที่ติดตั้งผ่านผู้จัดการแพคเกจและที่เก็บ yum นี่เป็นเรื่องเล็กน้อย เพียงแค่พยายามอัพเกรดและสามารถทำได้โดยไม่มีปัญหาการพึ่งพาหมายความว่าแพคเกจพร้อม

สำหรับแพ็คเกจที่ติดตั้งด้วยตนเองคุณจะต้องตรวจสอบสิ่งเหล่านี้ด้วยตนเองและใช้การอัปเดตที่ผู้ให้บริการจัดทำไว้ คุณควรกดดันผู้ขายเหล่านี้ให้จัดหาแพคเกจ RPM ที่เหมาะสมและที่เก็บยำในกรณีเหล่านี้

ผู้ใช้ส่วนใหญ่สามารถอัปเดตเป็น 6.5 ด้วยคำสั่งเช่น:

yum --disableexcludes=all --obsoletes update

ผู้ใช้ RHEL ที่ตั้งค่ารุ่นย่อยที่เฉพาะเจาะจงต้องตั้งค่า 6.5 เป็นเป้าหมายการปล่อยก่อนที่จะเรียกใช้การอัปเดตด้านบน:

subscription-manager release --set=6.5

ณ จุดนี้คุณควรจะสามารถติดตั้งแพ็คเกจของบุคคลที่สามที่คุณพยายามจะติดตั้ง


ปัญหาอื่น ๆ

ผู้ใช้ CentOS และ RHEL อื่น ๆ ใน VPS หรือผู้ให้บริการคลาวด์บางรายอาจพบว่าพวกเขาไม่สามารถอัปเดตเป็น 6.5 yumคำสั่งจะระบุว่าไม่มีแพคเกจที่มีการทำเครื่องหมายสำหรับการปรับปรุง จนถึงตอนนี้ฉันได้เห็นสิ่งนี้ใน Windows Azure และผู้ให้บริการ VPS ขั้นต่ำบางราย

ในกรณีเหล่านี้ผู้ให้บริการรูปภาพ CentOS ที่ใช้งานได้แก้ไข/etc/yum.repos.d/CentOS-Base.repoในภาพเพื่อชี้ไปยังที่เก็บอื่น ๆ นอกเหนือจากกระจก CentOS อย่างเป็นทางการ

สิ่งนี้สามารถแก้ไขได้โดยการแก้ไขไฟล์ repo ด้วยตนเองเพื่อเรียกคืนcentos-releaseมิเรอร์ CentOS อย่างเป็นทางการหรือโดยการค้นหาRPM อย่างเป็นทางการบนมิร์เรอร์ CentOS และติดตั้งใหม่ ตัวอย่างเช่น (URL นี้ใช้ได้เฉพาะในวันนี้และอาจล้าสมัยในภายหลังให้ตรวจสอบมิเรอร์ของคุณก่อน):

yum update http://mirror.centos.org/centos/6/os/x86_64/Packages/centos-release-6-5.el6.centos.11.2.x86_64.rpm

5

คุณสามารถติดตั้ง PS 5.6 ได้เมื่อคุณอัพเกรด openssl เป็น openssl-1.0.1e-15.el6.x86_64.rpm

สำหรับ 6.4 เรา (ฉันทำงานกับ Percona) ก็มีแพคเกจที่กำหนดเองบางรายการเช่นกัน: http://www.percona.com/downloads/Percona-Server-5.5-centos-6.4/


อัปเดตเล็กน้อยลิงก์ด้านบนถูกลบเรา (ฉันทำงานกับ Percona) ในไม่ช้าจะมีแพ็คเกจที่พร้อมใช้งานใน Centos 6.x ทุกรุ่นรวมถึง Centos 6.4
Roel Van de Paar

ฉันต้องการรุ่นนี้ :(
Beto Castillo

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