你好,当我从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)