无法在solaris 10中解决curl的这种依赖性

时间:2014-01-13 03:54:28

标签: curl solaris solaris-10

我正在尝试在solaris 10上安装curl。

我已经将curl包与其他依赖项一起安装为

application SMCcurl                          curl
application SMClgcc346                       libgcc
application SMClibidn                        libidn
application SMCliconv                        libiconv
application SMClintl                         libintl
application SMClssh2                         libssh2
application SMCossl                          openssl
application SMCzlib                          zlib

当我试图运行卷曲时,我收到错误

/usr/local/bin # ./curl --version
ld.so.1: curl: fatal: libidn.so.11: version `LIBIDN_1.0' not found (required by file /usr/local/lib/libcurl.so.4)
ld.so.1: curl: fatal: libidn.so.11: open failed: No such file or directory
Killed

搜索了它的解决方案,但没有运气。

ldd curl命令的输出是

        libcurl.so.4 =>  /usr/local/lib/libcurl.so.4
        libidn.so.11 =>  /usr/local/lib/libidn.so.11
        libintl.so.8 =>  /usr/local/lib/libintl.so.8
        libsec.so.1 =>   /usr/lib/libsec.so.1
        libc.so.1 =>     /usr/lib/libc.so.1
        libiconv.so.2 =>         /usr/local/lib/libiconv.so.2
        libnsl.so.1 =>   /usr/lib/libnsl.so.1
        libdl.so.1 =>    /usr/lib/libdl.so.1
        libssh2.so.1 =>  /usr/local/lib/libssh2.so.1
        libssl.so.1.0.0 =>       /usr/local/ssl/lib/libssl.so.1.0.0
        libcrypto.so.1.0.0 =>    /usr/local/ssl/lib/libcrypto.so.1.0.0
        libsocket.so.1 =>        /usr/lib/libsocket.so.1
        librt.so.1 =>    /usr/lib/librt.so.1
        libz.so =>       /usr/local/lib/libz.so
        libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
        libidn.so.11 (LIBIDN_1.0) =>     (version not found)
        libavl.so.1 =>   /lib/libavl.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.so.1
        libaio.so.1 =>   /lib/libaio.so.1
        libdoor.so.1 =>  /lib/libdoor.so.1
        libuutil.so.1 =>         /lib/libuutil.so.1
        libgen.so.1 =>   /lib/libgen.so.1
        libm.so.2 =>     /lib/libm.so.2
        /platform/SUNW,Netra-440/lib/libc_psr.so.1
        /platform/SUNW,Netra-440/lib/libmd_psr.so.1

有人可以告诉我如何解决这些依赖?

5 个答案:

答案 0 :(得分:4)

这可能是因为您安装了另一个软件包,它提供了同一个库文件的不同版本。我今天遇到了同样的问题,发现我有一个名为SUNWgnu-idn的软件包,它在/usr/lib/中安装了libidn.so.11。

  

pvs -d /usr/lib/libidn.so.11

    libidn.so.11;

libidn.so.11包中的SMClibidn是正确的版本。

  

pvs -d /usr/local/lib/libidn.so.11

    libidn.so.11;
    LIBIDN_1.0;

删除冲突的包SUNWgnu-idn解决了这个问题。

您可以使用pkginfo工具搜索其他已安装的软件包。

  

pkginfo | grep idn

答案 1 :(得分:1)

您需要从打包器中找出他们使用的定义该版本的libidn版本。您可以使用pvs命令查看库提供的版本,例如pvs -d /usr/local/lib/libidn.so.11

答案 2 :(得分:0)

我不知道这个问题是否已经解决,但是我发现,尝试lynx,有两个名称几乎相似的库:

bash-3.2# ldd /usr/local/bin/lynx
    libidn.so.11 =>  /usr/local/lib/libidn.so.11
    libidn.so.11 (LIBIDN_1.0) =>     (version not found)
    ...

第一个libidn.so.11来自“SMClibidn”软件包版本1.11,但不知道我在哪里可以得到导致问题的那个: - “libidn.so.11(LIBIDN_1.0)=>(未找到版本)”。

我尝试卸载“SMClibidn”的版本1.11并安装versión1.22和“voilà”,lynx正在运行。

我希望这也适合你。

答案 3 :(得分:0)

问题是寻找包SUNWgnu-idn。来自UnixPackages的wget首先在/ usr / lib中找到了libidn。因此,在需要wget时,首先设置LD_LIBRARY_PATH以指定/ usr / local / lib。

答案 4 :(得分:0)

哟必须安装" libidn-1.11-sol10-sparc-local"

http://ftp.ntua.gr/mirror/sun-freeware/sparc/10/