centos - Centos 7上两个版本的libcurl导致CRYPTO_num_locks错误

标签 centos libcurl yum

我正在尝试在虚拟 Centos 7 发行版上构建一些 C++ 库。 由于我还没有发现这个操作系统看不到/usr/local/lib 或/usr/local/lib64 的原因,这些库安装在其他 linux 发行版中。所以我不得不在/etc/ld.so.conf 中添加这些文件夹。然后 c++ 链接器能够看到这些库。 但是后来我给了

 sudo yum update

我收到以下消息:

/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locks

查找后发现是由于存在两个版本的libcurl所致。我给了

ldconfig -v | grep libcurl

我得到了以下信息:

ldconfig: Path `/usr/lib' given more than once
ldconfig: Path `/usr/lib64' given more than once
libcurl.so.4 -> libcurl.so.4.4.0
libcurl.so.4 -> libcurl.so.4.3.0

意思是我安装了一个新版本的libcurl,现在两个版本并存。 当我从/etc/ld.so.conf 中删除文件夹路径时,yum 工作正常但 c++ 链接器找不到我的应用程序需要的 c++ 库。我也尝试更新 LD_LIBRARY_PATH,但我遇到了同样的问题。
有没有办法在不在新位置重新安装库的情况下解决这个问题?删除旧版本是否安全?

ls -lsa/usr/lib64/*curl* 给出了

 0 lrwxrwxrwx. 1 root root 16 Aug 10 10:19 /usr/lib64/libcurl.so.4 -> libcurl.so.4.3.0  

 428 -rwxr-xr-x. 1 root root 435120 Nov 14 2016 /usr/lib64/libcurl.so.4.3.0 

我试着给予

sudo unlink /usr/lib64/libcurl.so.4 
sudo ln -s /usr/local/lib/libcurl.so.4.4.0 /usr/lib64/libcurl.so.4 

我什至给了他们 root 但每次我给 ldconfig 我得到

   libcurl.so.4 -> libcurl.so.4.3.0 

在 ldconfig 给出之前

  libcurl.so.4 -> /usr/local/lib/libcurl.so.4.4.0

最佳答案

我遇到了同样的问题,但我的系统上没有安装两个版本的 curl 或 pycurl。我的一个最终用户软件安装更改了 LD_LIBRARY_PATH,它不包括/usr/lib 或/usr/lib64。我尝试将它们添加到路径的末尾,但仍然收到相同的错误。我将它们添加到前面,没有更多的错误。我必须询问我的最终用户是否有正当理由将默认库从环境变量中排除。

关于centos - Centos 7上两个版本的libcurl导致CRYPTO_num_locks错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45591298/

相关文章:

centos - Magento 管理面板无法访问且没有错误(服务器挂起后)

ruby-on-rails - 如何让 libcurl 库与 InstantRails 一起工作?

php - 发送原始字节缓冲区后

c++ - 使用 libcurl 多接口(interface)连续请求相同的 "easy"句柄

installation - linux上的orangehrm 3.3.3安装和配置错误

curl - Centos Curl Http 错误 :404 Page does Not Exists

logging - Rsyslog - 日志未显示在服务器上

python - Amazon Linux AMI EC2 - librrd.so.2 依赖性问题

installation - 使用 yum 安装 Aptana Studio 3

amazon-ec2 - 让 wkhtmltoimage 在 Amazon Linux/Ruby on Rails 上工作的问题