libcurl.so.4 没有可用的版本信息

libcurl.so.4 没有可用的版本信息

curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl)

这是我遇到的错误。此错误并未阻止任何脚本或应用程序运行或执行其任务,但是每次使用 curl 时我都会收到系统发送的电子邮件。

我有一些经常运行的 cron 作业。有些作业每隔几分钟运行一次,有些则运行时间更长,而且我收到的电子邮件中都会包含该错误行。我已经用尽全力搜索了该字符串及其变体。但是,我找不到任何有用的东西。

我所做的:删除文件/usr/local/lib/libcurl.so.4,这样错误就会消失,并且 curl 仍然可以正常工作。大约 24-48 小时后,文件会重新出现,弹出到文件夹中,我必须重新删除它。我知道这不是正确的做法,但我不确定还能做什么。


/usr/local/lib/ 的内容

libcurl.a
libgcrypt.la
libgpg-error.la
libruby-static.a
python2.7/
weechat/
libcurl.la
libgcrypt.so
libgpg-error.so
node_modules/
python3.4/
libcurl.so
libgcrypt.so.20
libgpg-error.so.0
pkgconfig/
ruby/
libcurl.so.4.3.0
libgcrypt.so.20.0.3
libgpg-error.so.0.15.0
postsrsd/
site_ruby/

已安装的软件包:

$ apt --installed list | grep 'curl'
curl/trusty-updates,trusty-security,now 7.35.0-1ubuntu2.5 amd64 [installed]
libcurl3/trusty-updates,trusty-security,now 7.35.0-1ubuntu2.5 amd64 [installed]
libcurl3-gnutls/trusty-updates,trusty-security,now 7.35.0-1ubuntu2.5 amd64 [installed]
libcurl4-openssl-dev/trusty-updates,trusty-security,now 7.35.0-1ubuntu2.5 amd64 [installed]
php5-curl/trusty-updates,trusty-security,now 5.5.9+dfsg-1ubuntu4.9 amd64 [installed]
python-pycurl/trusty,now 7.19.3-0ubuntu3 amd64 [installed,automatic]
python3-pycurl/trusty,now 7.19.3-0ubuntu3 amd64 [installed]

$ lsb_release -a
Distributor ID: Ubuntu
Description:    Ubuntu 14.04.2 LTS
Release:        14.04
Codename:       trusty

任何能为我指明正确方向的信息都将不胜感激。

编辑#1(更多信息) 该链接总是在每日 cron 作业运行后于上午 8:00:01 建立。

celestia@Canterlot:/usr/local/lib# ls -hal
drwxr-xr-x 10 celestia root  4.0K Jun 11 07:58 .
drwxr-xr-x 11 celestia root  4.0K Jun 23  2014 ..
-rw-r--r--  1 celestia root  805K May  2 00:16 libcurl.a
-rwxr-xr-x  1 celestia root   953 May  2 00:16 libcurl.la
lrwxrwxrwx  1 celestia root    16 May  2 00:16 libcurl.so -> libcurl.so.4.3.0
lrwxrwxrwx  1 celestia root    16 Jun 11 07:58 libcurl.so.4 -> libcurl.so.4.3.0
-rwxr-xr-x  1 celestia root  424K May  2 00:16 libcurl.so.4.3.0
-rwxr-xr-x  1 celestia root   987 May  2 00:20 libgcrypt.la
lrwxrwxrwx  1 celestia root    19 May  2 00:20 libgcrypt.so -> libgcrypt.so.20.0.3
lrwxrwxrwx  1 celestia root    19 May  2 00:20 libgcrypt.so.20 -> libgcrypt.so.20.0.3
-rwxr-xr-x  1 celestia root  3.5M May  2 00:20 libgcrypt.so.20.0.3
-rwxr-xr-x  1 celestia root   956 May  2 00:13 libgpg-error.la
lrwxrwxrwx  1 celestia root    22 May  2 00:13 libgpg-error.so -> libgpg-error.so.0.15.0
lrwxrwxrwx  1 celestia root    22 May  2 00:13 libgpg-error.so.0 -> libgpg-error.so.0.15.0
-rwxr-xr-x  1 celestia root  336K May  2 00:13 libgpg-error.so.0.15.0
celestia@Canterlot:/usr/local/lib# stat libcurl.so.4
  File: ‘libcurl.so.4’ -> ‘libcurl.so.4.3.0’
  Size: 16              Blocks: 0          IO Block: 4096   symbolic link
Device: fc00h/64512d    Inode: 30939991    Links: 1
Access: (0777/lrwxrwxrwx)  Uid: (    0/celestia)   Gid: (    0/    root)
Access: 2015-06-11 08:00:01.983201467 -0400
Modify: 2015-06-11 07:58:17.551455525 -0400
Change: 2015-06-11 07:58:17.551455525 -0400
 Birth: -

celestia@Canterlot:/usr/local/lib# apt-file search libcurl.so.4
libcurl3: /usr/lib/x86_64-linux-gnu/libcurl.so.4
libcurl3: /usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0

celestia@Canterlot:/usr/local/lib# ldd libcurl.so.4
linux-vdso.so.1 =>  (0x00007fff1cdfe000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007fb2e75f1000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007fb2e7216000)
libz.so.1 => /lib/x86_64-linux-gnu/libz.so.1 (0x00007fb2e6ffc000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fb2e6c37000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fb2e6a33000)
/lib64/ld-linux-x86-64.so.2 (0x00007fb2e7ad2000)

答案1

问题出在我在系统上安装了 2 个 curl。一个是 apt-get install curl,另一个是从源代码构建的 curl。我最终删除了从源代码构建的 curl,现在一切正常。我后来还尝试删除 apt-get 并再次从源代码重建 curl,一切正常。但是当我从 apt-get 重新安装 curl 时,仍然安装了源代码,同样的问题又出现了。所以我再次删除了 apt-get。

简而言之,不要在系统上使用两次 curl,否则就会出现问题。

抱歉写得不好,我刚刚起床。

答案2

我在安装 CMAKE 时也遇到了这样的问题,我输入cmake,输出是:

cmake: /usr/local/lib/libcurl.so.4: no version information available     (required by cmake)
Segmentation fault (core dumped)`

有些像你的。我是这样修复的:

sudo ln -fs /usr/lib/libcurl.so.4 /usr/local/lib/

然后,我输入cmake -version,结果是

cmake version 3.2.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).

答案3

在此之前,请检查 $ldd curl 中是否有任何缺失的链接库,如果发现缺失,则在 /etc/ld.so.conf 中添加此行“/usr/local/lib”,然后运行 ​​$sudo ldconfig -v 检查 $ldconfig -p,然后 curl 必须能够从该目录中使用缺失的库

相关内容