无法在solaris 10中解析curl的此依赖关系

无法在solaris 10中解析curl的此依赖关系,curl,solaris,solaris-10,Curl,Solaris,Solaris 10,我正在尝试在solaris 10上安装curl 我已经安装了curl包和其他依赖项,如下所示 application SMCcurl curl application SMClgcc346 libgcc application SMClibidn libidn application SMCliconv libi

我正在尝试在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
当我尝试运行curl时,我得到的错误如下

/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

有人能告诉我如何解决这些依赖关系吗?

您需要从包装商那里了解他们使用的定义该版本的libidn版本。您可以使用pvs命令查看库提供的版本,例如
pvs-d/usr/local/lib/libidn.so.11

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

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

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

    libidn.so.11;
    libidn.so.11;
    LIBIDN_1.0;
libidn.so.11
SMClibidn
包的一部分,是正确的版本

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

    libidn.so.11;
    libidn.so.11;
    LIBIDN_1.0;
删除冲突包
SUNWgnu idn
解决了该问题

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

pkginfo | grep idn


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

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

    libidn.so.11;
    libidn.so.11;
    LIBIDN_1.0;
libidn.so.11
SMClibidn
包的一部分,是正确的版本

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

    libidn.so.11;
    libidn.so.11;
    LIBIDN_1.0;
删除冲突包
SUNWgnu idn
解决了该问题

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

pkginfo | grep idn


我不知道这个问题是否解决了,但我在尝试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版,并安装1.22版和“瞧”,lynx正在工作


我希望这也适用于您。

我不知道这个问题是否已解决,但我在尝试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版,并安装1.22版和“瞧”,lynx正在工作


我希望这也适用于您。

问题是查找包SUNWgnu idn。UnixPackages中的wget首先在/usr/lib中找到libidn。因此,当您需要wget时,首先将LD_LIBRARY_路径设置为指定/usr/local/lib。

问题在于查找包SUNWgnu idn。UnixPackages中的wget首先在/usr/lib中找到libidn。因此,当您需要wget时,首先将LD_LIBRARY_路径设置为指定/usr/local/lib。

您必须安装“libidn-1.11-sol10-sparc-local”

您必须安装“libidn-1.11-sol10-sparc-local”


您是否考虑过,如果您不在Solaris 10上,这将变得容易得多。在Solaris 11上,您只需执行
pkg安装web/curl
即可!您是否考虑过,如果您不在Solaris 10上,这将变得容易得多。在Solaris 11上,您只需执行
pkg安装web/curl
即可!