yum安裝net-snmp引發的libssl.so.10失效導致yum不可用問題
阿新 • • 發佈:2019-02-14
yum作為一個解決包之間依賴關係的安裝工具,本來不應該引發更多的依賴問題。但是在實際操作中還是碰上了安裝報錯導致yum自身不可用的情況。
我在Centos6.4伺服器上使用系統自帶的Centos-Base.repo安裝net-snmp因為安裝過程中發現缺少snmpwalk這個工具,就有通過yum 安裝net-snmp-libs和net-snmp-devel。
安裝過程很順利,但是裝上之後發現yum使用會報錯,報錯資訊如下:
There was a problem importing one of the Python modules required to run yum. The error leading to this problem was: /usr/lib64/libssl.so.10: symbol private_ossl_minimum_dh_bits, version libcrypto.so.10 not defined in file libcrypto.so.10 with link time reference Please install a package which provides this module, or verify that the module is installed correctly. It's possible that the above module doesn't match the current version of Python, which is: 2.6.6 (r266:84292, Feb 22 2013, 00:00:18) [GCC 4.4.7 20120313 (Red Hat 4.4.7-3)] If you cannot solve this problem yourself, please go to the yum faq at:
看報錯資訊又上網查了半天,基本上確定應該是,yum在安裝net-snmp相關包的時候升級了openssl的依賴。此時使用openssl version -a
檢查openssl版本資訊也出現報錯version libcrypto.so.10 not defined in file libcrypto.so.10 with link time reference
趕緊查了一下同批的伺服器,看到openssl的版本應該是openssl-1.0.1e。看到這個趕緊降級伺服器上的openssl。
下載openssl原始碼包 :
https://www.openssl.org/source/old/1.0.1/openssl-1.0.1e.tar.gz
下載之後解壓,
通過./config shared zlib-dynamic 來生成Makefile檔案。然後執行make
生成 libssl.so.1.0.0
libcrypto.so.1.0.0
將這個兩個檔案移動到/usr/lib64/目錄下
在當前目錄下建立軟連線
ln -s libssl.so.1.0.0 libssl.so.10
ln -s libcrypto.so.1.0.0e libcrypto.so.10
然後重啟sshservice sshd restart
此時問題解決。使用yum --help
命令測試,發現沒有新的報錯,伺服器ssh登入也沒有異常。