Sunfreeware openssl имеет двойные ссылки на libgcc_s.so.1 - PullRequest
3 голосов
/ 02 июня 2011

Какие-нибудь советы, как решить эту недостающую библиотечную проблему?В этом случае я использую пакеты Sunfreeware вместо компиляции из исходного кода.

$ /usr/local/ssl/bin/openssl version
ld.so.1: openssl: fatal: libgcc_s.so.1: open failed: No such file or directory
Killed

$ ldd /usr/local/ssl/bin/openssl
        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 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libdl.so.1 =>    /lib/libdl.so.1
        libc.so.1 =>     /lib/libc.so.1
        libgcc_s.so.1 =>         (file not found)
        libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.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

--- дополнительная информация ---

$ uname -a
SunOS sunws04 5.10 Generic_144489-04 i86pc i386 i86pc

$ pkginfo -l SMCossl
   PKGINST:  SMCossl
      NAME:  openssl
  CATEGORY:  application
      ARCH:  x86
   VERSION:  1.0.0d
   BASEDIR:  /usr/local
    VENDOR:  The OpenSSL Group
    PSTAMP:  Steve Christensen
  INSTDATE:  Jun 02 2011 12:20
     EMAIL:  steve@smc.vnet.net
    STATUS:  completely installed
     FILES:     1864 installed pathnames
                   1 shared pathnames
                  43 directories
                  32 executables
               28209 blocks used (approx)


$ echo $LD_LIBRARY_PATH

$ grep libgcc_s.so.1 /var/sadm/install/contents
/usr/local/lib/libgcc_s.so=libgcc_s.so.1 s none SMCgcc SMClgcc346
/usr/local/lib/libgcc_s.so.1 f none 0644 bin bin 158940 21764 1160370299 SMCgcc SMClgcc346

$ ldd -s /usr/local/ssl/bin/openssl
...
   find object=libgcc_s.so.1; required by openssl
    search path=/usr/local/ssl/lib  (RPATH from file openssl)
    trying path=/usr/local/ssl/lib/libgcc_s.so.1
    search path=/lib:/usr/lib  (default)
    trying path=/lib/libgcc_s.so.1
    trying path=/usr/lib/libgcc_s.so.1
        libgcc_s.so.1 =>         (file not found)
...
   find object=libgcc_s.so.1; required by /usr/local/ssl/lib/libssl.so.1.0.0
    search path=/usr/local/lib:/usr/local/ssl/lib  (RPATH from file /usr/local/ssl/lib/libssl.so.1.0.0)
    trying path=/usr/local/lib/libgcc_s.so.1
        libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1

--- grungy обходной путь ---

$ setrpath /usr/local/ssl/bin/openssl /usr/local/lib
Old RPATH: /usr/local/ssl/lib
New RPATH set to: /usr/local/lib

$ /usr/local/ssl/bin/openssl version
ld.so.1: openssl: fatal: libssl.so.1.0.0: open failed: No such file or directory
Killed

$ export LD_LIBRARY_PATH=/usr/local/ssl/lib
$ /usr/local/ssl/bin/openssl version
OpenSSL 1.0.0d 8 Feb 2011

--- другая попытка не удалась ---

$ unset LD_LIBRARY_PATH
$ setrpath /usr/local/ssl/bin/openssl /usr/local/lib:/usr/local/ssl/lib
Old RPATH: /usr/local/lib
New RPATH would be longer than current RPATH.
(Use -f to use any extra space in string table)

$ setrpath -f /usr/local/ssl/bin/openssl /usr/local/lib:/usr/local/ssl/lib
Old RPATH: /usr/local/lib
New RPATH set to: /usr/local/lib:/usr/local/ssl/lib

$ /usr/local/ssl/bin/openssl version
ld.so.1: openssl: fatal: relocation error: file openssl: symbol /local/ssl/lib: referenced symbol not found
Killed

Ответы [ 3 ]

3 голосов
/ 12 января 2012

или

LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/csw/lib:/usr/local/lib:/usr/sfw/lib
export LD_LIBRARY_PATH

в / etc / profile

правильный порядок библиотечных путей играет роль для всех программ.

Проверьте функциональность как:

ldd /usr/local/ssl/bin/openssl
        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 =>        /lib/libsocket.so.1
        libnsl.so.1 =>   /lib/libnsl.so.1
        libdl.so.1 =>    /lib/libdl.so.1
        libc.so.1 =>     /lib/libc.so.1
        libgcc_s.so.1 =>         /usr/local/lib/libgcc_s.so.1
        libmp.so.2 =>    /lib/libmp.so.2
        libmd.so.1 =>    /lib/libmd.so.1
        libscf.so.1 =>   /lib/libscf.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
        /lib/libm/libm_hwcap1.so.2
        /platform/SUNW,SPARC-Enterprise/lib/libc_psr.so.1
2 голосов
/ 13 июня 2011

или вы можете:

ln -s /usr/local/lib/libgcc_s.so.1 /usr/lib/libgcc_s.so.1

У меня работает:)

# /usr/local/ssl/bin/openssl version
OpenSSL 1.0.0d 8 Feb 2011
1 голос
/ 01 августа 2012

У меня была точно такая же проблема с sudo. Я пытался и не повезло. На самом деле я был готов к установке патча, чтобы исправить это. Затем я узнал, что я использую две разные версии пакета sudo, которые я скачал с sunfreeware.com. 1.8.1p2 против 1.8.3p2. Я удалил файл, перенес новый файл и был готов к работе. Я знаю, что этот ответ звучит глупо, но я застрял без ответа около недели или около того, только чтобы узнать, что это был мой плохой.

...