Не удалось разрешить эту зависимость для curl в Solaris 10

Я пытаюсь установить curl на Solaris 10.

Я установил пакеты 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

Может кто-нибудь, пожалуйста, скажите мне, как можно решить эту зависимость?


person User007    schedule 13.01.2014    source источник
comment
Задумывались ли вы, насколько проще было бы это сделать, если бы вы все еще не работали на Solaris 10. В Solaris 11 вы бы просто сделали pkg install web/curl и все!   -  person peterh    schedule 08.03.2014


Ответы (5)


Это может быть связано с тем, что у вас установлен другой пакет, предоставляющий другую версию того же файла библиотеки. Сегодня я столкнулся с той же проблемой и обнаружил, что у меня есть пакет под названием SUNWgnu-idn, который установил libidn.so.11 в /usr/lib/.

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 для поиска других установленных пакетов.

информация о пакете | идентификатор grep

person Vivek Thomas    schedule 28.04.2014

Вам нужно будет узнать у упаковщика, какую версию libidn они использовали, которая определяет эту версию. Вы можете просмотреть версии, предоставляемые библиотекой, с помощью команды pvs, например pvs -d /usr/local/lib/libidn.so.11.

person alanc    schedule 13.01.2014

Не знаю, решилась ли эта проблема, но я обнаружил, попробовав lynx, что есть 2 библиотеки с почти похожими названиями:

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) => (версия не найдена)" .

Я пытаюсь удалить версию 1.11 "SMClibidn" и установить версию 1.22 и "вуаля", lynx работает.

Я надеюсь, что это работает и для вас.

person DiegoPalopoli1974    schedule 15.02.2016

Проблема заключается в поиске пакета SUNWgnu-idn. wget из UnixPackages сначала находит libidn в /usr/lib. Поэтому установите LD_LIBRARY_PATH, чтобы сначала указать /usr/local/lib, когда вам понадобится wget.

person No name    schedule 08.12.2016

Вам нужно установить "libidn-1.11-sol10-sparc-local"

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

person Pab    schedule 03.07.2017