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 必须能够从该目录中使用缺失的库