這篇文章主要給大家介紹了在yum中報錯: “pycurl.so: undefined symbol: crypto_num_locks”的問題排查的相關資料,文中通過圖文介紹的非常詳細,需要的朋友可以參考借鑒,下面來一起看看吧。
最近在工作中發現一個問題,yum無法使用,報錯如下:
/usr/lib64/python2.7/site-packages/pycurl.so:?undefined?symbol:?CRYPTO_num_locks
ldd /usr/lib64/python2.7/site-packages/pycurl.so 查看一下動態庫連接
注意:libcurl的位置
查看一下libcurl是否有什么異常的配置
ldconfig -v | grep libcurl 發現兩個libcurl
檢查ld.so.conf的配置
對比正常的測試機
根據前面的ldd來看,去掉local lib試試
vi /etc/ld.so.conf
執行ldconfig ,重新生成緩存,無返回,測試yum還是不行
ldconfig -p|grep curl 看下加載
繼續查找
緩存對應的目錄,然后刷新緩存(這里很明顯是MySQL設置的libcurl地址,經過核實后,發現MySQL緩存有問題,已經刪除了)
yum 現在可以用了。
知識擴展:
ldconfig 是一個動態鏈接庫管理命令,為了讓動態鏈接庫為系統所共享,還需運行動態鏈接庫的管理命令–ldconfig。
ldconfig 命令的用途,主要是在默認搜尋目錄(/lib和/usr/lib)以及動態庫緩存/etc/ld.so.conf內所列的目錄下,緩存出可共享的動態 鏈接庫(格式如前介紹,lib*.so*),進而創建出動態裝入程序(ld.so)所需的連接和緩存文件.緩存文件默認為 /etc/ld.so.cache,此文件保存已排好序的動態鏈接庫名字列表.
ldd 作用:用來查看程序運行所需的共享庫,常用來解決程序因缺少某個庫文件而不能運行的一些問題。