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



你好,当我从tcl错误:curl:curl: /USR/local/lib/libcurl.so.4:没有可用的版本信息(curl需要)

卷曲 -  versioncurl 7.40.0(x86_64-Inknown-linux-gnu)libcurl/7.40.0 openssl/1.0.1f zlib/1.2.8 libidn/1.28 librtmp/2.3协议:dict文件ftp ftp ftps gopher http https imap imap imap ldap ldap pop3 pop3 rtmp rtmp rtmp rtsp smb smb smb smbs smtp smtp smtp smtps telnet tftp功能:IDN IPv6大型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*

我在安装CMAKE时也有libcurl.so.4: no version information available的问题。我键入cmake,输出为:

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

我通过执行以下操作解决了这一点:

首先,我找到libcurl.so.4的路径:

locate libcurl.so.4

结果是:

/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

第二,找到libcurl.so.4的链接,类型:

ls -l /usr/local/lib/libcurl.so.4

结果:

lrwxrwxrwx 1 root root 16 Aug 16 21:15 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.2.0

第三,将其删除并重建链接到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

接下来,检查它:

 ls -l /usr/local/lib/libcurl.so.4

好吧,输出为:

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

然后,我键入cmake -version,结果为

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

修复了错误后,我认为它可能是由卷曲的多反转引起的,就像我一样,原点Ubuntu环境有一个,但我安装了另一个。

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

./configure --enable-versioned-symbols

在我的ubuntu 16.04中,当我将anaconda bin导出到 PATH和lib至 LD_LIBRARY_PATH时,我遇到了同样的问题。我通过从Conda-Forge:conda install cmake安装CMAKE解决了它。如果您使用Anaconda作为我,则可以使用此方法来修复它,否则可以使用其他解决方案。

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

我在crontab的背景下遇到了这一点,它的运行方式与用户不同。快速修复是用/usr/local/bin/curl

明确指定我的curl s

对我来说,我的系统是Ubuntu16的默认卷发。但是我通过源代码安装卷发。

root@xy:~/cmake_practice/cmake_build/build_demo9# locate libcurl.so.4
/home/xy/anaconda2/lib/libcurl.so.4
/home/xy/anaconda2/lib/libcurl.so.4.4.0
/home/xy/anaconda2/pkgs/curl-7.55.1-hcb0b314_2/lib/libcurl.so.4
/home/xy/anaconda2/pkgs/curl-7.55.1-hcb0b314_2/lib/libcurl.so.4.4.0
/usr/lib/x86_64-linux-gnu/libcurl.so.4
/usr/lib/x86_64-linux-gnu/libcurl.so.4.4.0
/usr/local/lib/libcurl.so.4
/usr/local/lib/libcurl.so.4.4.0

然后我看到了新的libcurl。所以我最近安装(5月20日19:54):

root@xy:~/cmake_practice/cmake_build/build_demo9# ll -th /usr/local/lib/libcurl.so.4
lrwxrwxrwx 1 root root 16 May 20 19:54 /usr/local/lib/libcurl.so.4 -> libcurl.so.4.4.0*

然后我将它们rm:

root@xy:~/cmake_practice/cmake_build/build_demo9# rm -f /usr/local/lib/libcurl.so.4
root@xy:~/cmake_practice/cmake_build/build_demo9# rm -f /usr/local/lib/libcurl.so.4.4.0

检查它:

root@xy:~/cmake_practice/cmake_build/build_demo9# cmake --version
cmake version 3.5.1
CMake suite maintained and supported by Kitware (kitware.com/cmake).
root@xy:~/cmake_practice/cmake_build/build_demo9# 

在最新的ubuntu(18.4)上我必须 sudo apt-get remove libcurl.
然后重新安装所需的内容,例如curl

在这里我有一个简单的解决方案。

您可以安装libcurl并遇到问题。但是您可以通过安装的libcurl重建自己的cmake来解决它(使用ld_library_path指向您的libcurl)

为我工作。(Ubuntu 16.04,libcurl 4.5和Cmake 3.11.3)

最新更新