你好我从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环境有一个,但是我安装了另一个.
在我的 ubuntu 16.04 中,当我将 anaconda bin 导出到PATH并将 lib 导出到LD_LIBRARY_PATH. 我通过从 conda-forge: 安装 cmake 解决了这个问题conda install cmake。如果你像我一样使用anaconda,你可以使用这个方法来修复它,否则使用别人的解决方案。
我在构建较新版本的 curl 7.5.61 然后重建我的应用程序时遇到了这个问题。我的解决方案是设置--enable-versioned-symbols默认情况下禁用的。
./configure --enable-versioned-symbols --prefix=$PWD
Run Code Online (Sandbox Code Playgroud)
在我的 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
| 归档时间: |
|
| 查看次数: |
33361 次 |
| 最近记录: |