源碼安裝了curl之后, 導致yum執行時報如下錯誤:
/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback
是因為yum動態庫使用了新安裝libcurl庫導致的。使用ldd查看動態庫依賴關系:
ldd /usr/lib64/python2.6/site-packages/pycurl.so
可以發現libcurl.so.4 指向了新安裝的libcurl。
查找系統舊有的libcurl
find / -name "libcurl*"
/usr/lib64/libcurl.so.4 -> libcurl.so.4.1.1
/usr/local/lib/libcurl.so.4 -> libcurl.so.4.4.0
有兩種方法解決:
1. 直接將/usr/local/lib/libcurl.so.4 軟連接到舊有libcurl中
rm /usr/local/lib/libcurl.so.4
ln -s /usr/lib64/libcurl.so.4.1.1 /usr/local/lib/libcurl.so.4
2. 設置LD_LIBRARY_PATH, 將舊有的libcurl路徑放置在前面
export LD_LIBRARY_PATH=/usr/lib64:$LD_LIBRARY_PATH