我是牧头
重新编译curl 安装后 yum 报错/usr/lib64/python2.6/site-packages/pycurl.so: undefined symbol: CRYPTO_set_locking_callback系统环境:CentOS release 6.2 (Final)2.6.32-220.13.1.el6.x86_64 #1 SMP Tue Apr 17 23:56:34 BST 2012 x86_64 x86_64 x86_64 GNU/Linux用ldd 查看动态库连接。没有,重新编译安装Curl前ldd /usr/lib64/python2.6/site-packages/pycurl.solinux-vdso.so.1 => (0x00007fffab90f000)libcurl.so.4 =>/usr/lib64/libcurl.so.4 (0x00007fa9bca4f000)libc.so.6 => /lib64/libc.so.6 (0x00007fa9bc6bc000)libidn.so.11 => /lib64/libidn.so.11 (0x00007fa9bc489000)libldap-2.4.so.2 => /lib64/libldap-2.4.so.2 (0x00007fa9bc23e000)librt.so.1 => /lib64/librt.so.1 (0x00007fa9bc036000)libgssapi_krb5.so.2 => /lib64/libgssapi_krb5.so.2 (0x00007fa9bbdf3000)libkrb5.so.3 => /lib64/libkrb5.so.3 (0x00007fa9bbb14000)默认方式编译安装 curl ( configure make install)cd curl-7.19.7./configuremake installldconfig #更新动态缓存我一运行yum 就报错。ldd /usr/lib64/python2.6/site-packages/pycurl.solinux-vdso.so.1 => (0x00007fffef7ff000)libcurl.so.4 => /usr/local/lib/libcurl.so.4(0x00007fd1fc29d000)libc.so.6 => /lib64/libc.so.6 (0x00007fd1fbf0a000)libidn.so.11 => /lib64/libidn.so.11 (0x00007fd1fbcd7000)librt.so.1 => /lib64/librt.so.1 (0x00007fd1fbacf000)按理来说没什么问题的。没办法,由于我必须要安装新的curl。所以我重新编译下pycurl.so。wget http://pycurl.sourceforge.net/download/pycurl-7.19.0.tar.gztar zxvf *.tar.gz我只要pycurl.so它一个,所以进入pycurl-7.19.0\src修改下vim MakefilePYINCLUDE=/usr/include/python2.6/注意这儿需要 python-devel, 没安装的就安装吧(就当更新python玩吧)yum install python-develOK, 编译下pycurl.somakecp /usr/lib64/python2.6/site-packages/pycurl.so /home/backup ##备份下之前,有问题也好恢复cp ./pycurl.so /usr/lib64/python2.6/site-packages/pycurl.so好了,运行下yum试试。ps:这种方法我没有试验成功,因为yum是不能用的,因此我直接修改链接库:vi /etc/ld.so.conf[cpp] view plaincopyprint?include ld.so.conf.d/*.conf/data/mysql/lib/mysql//usr/local/lib/usr/local/ssl/lib将第三行的/usr/local/lib注释掉,因为ldd /usr/lib64/python2.6/site-packages/pycurl.so发现其中有一个库是链接到/usr/local/lib库中的,而yum报错的主要错误就是因为libcurl.so.4 => /usr/local/lib/libcurl.so.4这个库的问题,然后使用命令ldconfig刷新下缓存就可以了。