我正在尝试在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
有人可以告诉我如何解决这些依赖?
答案 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"