错误:curl:/usr/local/lib/libcurl.so.4:没有可用的版本信息(curl需要)

12 curl tcl libcurl

你好我从tcl错误运行curl时出现此错误:curl:/usr/local/lib/libcurl.so.4:没有可用的版本信息(curl需要)

curl --version
curl 7.40.0 (x86_64-unknown-linux-gnu) libcurl/7.40.0 OpenSSL/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3
Protocols: dict file ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp
Features: IDN IPv6 Largefile NTLM NTLM_WB SSL libz TLS-SRP UnixSockets
root@lasdf :/usr/local/lib$ ll
drwxr-xr-x  5 root root    4096 Feb  4 17:33 ./
drwxr-xr-x 10 root root    4096 Aug  2  2014 ../
-rw-r--r--  1 root root  878996 Feb  4 17:33 libcurl.a
-rwxr-xr-x  1 root root     979 Feb  4 17:33 libcurl.la*
lrwxrwxrwx  1 root root      16 Feb  4 17:33 libcurl.so -> libcurl.so.4.3.0*
lrwxrwxrwx  1 root root      16 Feb  4 17:33 libcurl.so.4 -> libcurl.so.4.3.0*
-rwxr-xr-x  1 root root  472203 Feb  4 17:33 libcurl.so.4.3.0*
Run Code Online (Sandbox Code Playgroud)

CHE*_*IAN 49

libcurl.so.4: no version information available在安装CMAKE时遇到了问题.我打字cmake,输出是:

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

我通过以下方式解决了这个问题:

首先,我找到了以下路径libcurl.so.4:

locate libcurl.so.4
Run Code Online (Sandbox Code Playgroud)

结果是:

/home/chenjian/software/curl-7.20.0/lib/.libs/libcurl.so.4
/home/chenjian/software/curl-7.20.0/lib/.libs/libcurl.so.4.2.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0
/usr/local/lib/libcurl.so.4
/usr/local/lib/libcurl.so.4.2.0
Run Code Online (Sandbox Code Playgroud)

其次,找到libcurl.so.4的链接,输入:

ls -l /usr/local/lib/libcurl.so.4
Run Code Online (Sandbox Code Playgroud)

结果:

lrwxrwxrwx 1 root root 16 Aug 16 21:15 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.2.0
Run Code Online (Sandbox Code Playgroud)

第三,删除它并重建链接libcurl.so.4.3.0:

sudo rm /usr/local/lib/libcurl.so.4
sudo ln -s /usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0 /usr/local/lib/libcurl.so.4
Run Code Online (Sandbox Code Playgroud)

接下来,检查一下:

 ls -l /usr/local/lib/libcurl.so.4
Run Code Online (Sandbox Code Playgroud)

好吧,输出是:

lrwxrwxrwx 1 root root 42 Aug 24 09:23 /usr/local/lib/libcurl.so.4 -> /usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0
Run Code Online (Sandbox Code Playgroud)

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

cmake version 3.2.2

CMake suite maintained and supported by Kitware (kitware.com/cmake).
Run Code Online (Sandbox Code Playgroud)

修复bug后,我认为它可能是由多版本的curl引起的,像我一样,原始ubuntu环境有一个,但是我安装了另一个.

  • 好答案!纠正:在`sudo rm -rf / usr / local / lib / libcurl.so.4`中,不需要-rf。 (4认同)
  • 这解决了我的问题,但我很好奇这个问题总是在一段时间后在我的 Ubuntu 18.04 系统上再次出现。 (2认同)

cha*_*ang 5

在我的 ubuntu 16.04 中,当我将 anaconda bin 导出到PATH并将 lib 导出到LD_LIBRARY_PATH. 我通过从 conda-forge: 安装 cmake 解决了这个问题conda install cmake。如果你像我一样使用anaconda,你可以使用这个方法来修复它,否则使用别人的解决方案。


new*_*bie 5

我在构建较新版本的 curl 7.5.61 然后重建我的应用程序时遇到了这个问题。我的解决方案是设置--enable-versioned-symbols默认情况下禁用的。

./configure --enable-versioned-symbols --prefix=$PWD
Run Code Online (Sandbox Code Playgroud)


All*_*uce 4

在我的 Ubuntu 12.04 系统上,当运行时/usr/bin/curl(从curl可安装包)已经存在该错误,就会发出此错误/usr/local/bin/curl。执行 awhich curl并查看哪个正在执行 - 如果是/usr/bin/curl,请尝试执行/usr/local/bin/curl

我在 crontab 的上下文中遇到了这个问题,它以与我的用户不同的路径运行。快速解决方法是curl明确指定我的 s/usr/local/bin/curl