【问题标题】:error: curl: /usr/local/lib/libcurl.so.4: no version information available (required by curl)错误:curl:/usr/local/lib/libcurl.so.4:没有可用的版本信息(curl 需要)
【发布时间】:2015-07-13 02:05:33
【问题描述】:

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

卷曲--版本 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 协议: dict 文件 ftp ftps gopher http https imap imaps ldap ldaps pop3 pop3s rtmp rtsp smb smbs smtp smtps telnet tftp 特征: 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*

【问题讨论】:

  • 这意味着您使用的curllibcurl 不匹配。例如curl 由你的包管理器安装,libcurl 自己编译。

标签: curl tcl libcurl


【解决方案1】:

我在安装 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).

修复bug后,我认为可能是curl的多版本造成的,像我一样,origin ubuntu环境有一个,但是我安装了另一个。

【讨论】:

  • 为什么这个答案低于另一个?
  • 很好的答案!更正:sudo rm -rf /usr/local/lib/libcurl.so.4中,不需要-rf
  • 这解决了我的问题,但我很好奇问题总是在我的 Ubuntu 18.04 系统上一段时间后再次出现。
  • @haxpor 我也遇到了类似的问题,你解决了吗?
  • @Krishnaraj 我不确定会发生什么,但我已经转到 19.10,现在我没有发现任何问题。
【解决方案2】:

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

./configure --enable-versioned-symbols

【讨论】:

  • 你真的应该删除那个--prefix。例如,如果 PWD 在他们的主目录中,它真的会搞砸某人。
【解决方案3】:

在我的 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 明确指定我的curls

【讨论】:

  • 谢谢,遇到了同样的问题。我继续前进,apt-get remove curl 删除了 /usr/bin/curl(7.35 版),然后用 sudo ln -s /usr/local/bin/curl /usr/bin/curl 将它链接到我的 /usr/local/bin/curl(7.46 版)。
【解决方案4】:

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

【讨论】:

    【解决方案5】:

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

    【讨论】:

    • 删除现有的 libcurl 后 sudo apt-get install libcurl4-openssl-dev 为我工作。
    【解决方案6】:

    就我而言,我的系统是 ubuntu16,具有默认 curl。但是我通过源代码安装了一个curl。

    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.so 我最近安装(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# 
    

    【讨论】:

      【解决方案7】:

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

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

      为我工作。 (Ubuntu 16.04、libcurl 4.5 和 cmake 3.11.3)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-10-19
        • 1970-01-01
        • 1970-01-01
        • 2021-12-18
        • 2015-06-17
        • 1970-01-01
        • 2019-01-05
        • 1970-01-01
        相关资源
        最近更新 更多