最近项目需要在centos上默认配置源码安装了libcurl模块,导致使用yum命令时出现如下错误,(实际在很多使用libcurl的地方都会出错)。
/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback
CRYPTO_set_locking_callback实际上是与ssl相关的资源。
由于默认安装时没有指明安装ssl模块,导致新依赖的libcurl缺少ssl,从而出现如上错误。
解决方法:
下载ssl,编译安装,
./config --shared (注意需要使能--share动态库模块,否则后续编译libcurl出错)
make && make install (ssl默认安装在/usl/local/ssl/目录下)
然后设置动态库路径export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/ssl/lib
重新编译安装libcurl执行
./configure --with-ssl=/usr/local/ssl/
make && make install
最后将libcurl安装目录(/usr.local/lib/)和/usr/local/ssl/lib/ 写入 /etc/ld.so.conf文件
ldconfig更新链接目录缓存
重新执行yum成功!