Назад | Перейти на главную страницу

ошибка при загрузке разделяемых библиотек: libcrypto.so.1.1

Когда я запускаю openssl, я получаю следующее сообщение об ошибке:

openssl: ошибка при загрузке общих библиотек: libcrypto.so.1.1: невозможно открыть файл общих объектов: нет такого файла или каталога »

Это произошло после того, как я попытался обновить OpenSSL в соответствии с этим статья

Есть ли способ исправить это?

ОС: CentOS 6.8 Веб-сервер: nginx / 1.10.2

Обновление №1:

[root@host ~]# yum info openssl
Installed Packages
Name        : openssl
Arch        : x86_64
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 4.0 M
Repo        : installed
From repo   : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.

Available Packages
Name        : openssl
Arch        : i686
Version     : 1.0.1e
Release     : 48.el6_8.3
Size        : 1.5 M
Repo        : system-updates
Summary     : A general purpose cryptography library with TLS implementation
URL         : ***
License     : OpenSSL
Description : The OpenSSL toolkit provides support for secure communications
            : between machines. OpenSSL includes a certificate management tool and
            : shared libraries which provide various cryptographic algorithms and
            : protocols.

У меня была такая же проблема после установки последней версии openssl 1.1.0c, я решил проблему с копированием файлов библиотеки libcrypto.so.1.1, libcrypto.a и libssl.so из /usr/local/lib64 в общую библиотеку по адресу /usr/lib64.
После копирования библиотек необходимо создать символическую ссылку.

ln -s libcrypto.so.1.1 libcrypto.so
ln -s libssl.so.1.1 libssl.so

После создания символической ссылки восстановление кеша ldconfig также требовалось:

sudo ldconfig

С вашей исходной версией OpenSSL он знал, как найти общие библиотеки, потому что /usr/lib64 включен в путь поиска компоновщика. Когда вы загрузили и скомпилировали «локальную» копию OpenSSL, общие библиотеки были помещены в /usr/local/lib64 по умолчанию. Поэтому вам, вероятно, просто нужно добавить этот каталог в путь поиска компоновщика, например (как root):

echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf

затем выполните:

ldconfig

Я считаю, что это решит вашу проблему.

Вы можете переустановить его, используя

yum install -y openssl-devel

Я получил эту ошибку, используя Termux в ChromeOS, что привело к npm и node программы командной строки для сбоя.

Бег pkg upgrade исправил проблему!

То, что сказал @benedict, сработало для меня. Однако вы можете обнаружить, что некоторые символические ссылки указывают на более старые версии. Бег ls -l libcrypto* из / usr / libs покажет вам ссылки. Как в приведенном ниже примере:

lrwxrwxrwx 1 root root      16 May 21 15:28 libcrypto.so -> libcrypto.so.1.0

Затем вы захотите сначала удалить существующую ссылку, набрав sudo rm libcrypto.so а затем скопируйте libcrypto.so.1.1, как указано в @benedict. Наконец, вы можете создать новую ссылку. sudo ln -s libcrypto.so.1.1 libcrypto.so

Надеюсь это поможет.

В libcrypto.so принадлежит openssl-libs пакет. Если вы вручную удалили (с --nodeps) этот пакет или повредил его, обновив, вы потеряете доступ к yum, wget, curl, ssh и т. д. Если в системе есть доступ в Интернет, загрузите openssl-libs используя команду /usr/bin/GET. Синтаксис будет выглядеть, как показано ниже, если вы пытаетесь восстановить версию openssl-libs-1.0.2k-8.el7.x86_64:

/usr/bin/GET http://downloadURL/openssl-libs-1.0.2k-8.el7.x86_64.rpm > openssl-libs-1.0.2k-8.el7.x86_64.rpm

Это создаст openssl-libs-1.0.2k-8.el7.x86_64.rpm пакет для вас, вы можете использовать его для переустановки или извлечения отсутствующего .so файл.

Я столкнулся с той же проблемой ... Я решил ее, выполнив следующие команды.

ln -s /usr/local/lib/libcrypto.so.1.1 /usr/lib/libcrypto.so.1.1

Это создаст софтлинк, и все готово.

Это лучшее решение, которое я нашел вокруг ... другие решения, предлагаемые по всему Интернету, не выдерживают перезагрузки системы;)

ОС: Ubuntu 16.04

sudo vim /etc/ld.so.conf.d/libc.conf

Прокомментируйте настройки каталога lib и добавьте правильный путь

# libc default configuration

#/usr/local/lib

/usr/lib

Когда вы закончите редактирование, запустите эту команду:

sudo ldconfig

Тогда у вас будет хорошая настройка при запуске:

LDD / USR / bin / openssl

Перед этим исправлением:

 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
 /usr/bin/openssl: /usr/local/lib/libssl.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
/usr/bin/openssl: /usr/local/lib/libcrypto.so.1.0.0: no version information available (required by /usr/bin/openssl)
linux-vdso.so.1 =>  (0x00007ffe6d1e3000)
libssl.so.1.0.0 => /usr/local/lib/libssl.so.1.0.0 (0x00007f8999827000)
libcrypto.so.1.0.0 => /usr/local/lib/libcrypto.so.1.0.0 (0x00007f89993ed000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f8999023000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f8998e1f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f8999a97000)

После исправления я предоставил:

linux-vdso.so.1 =>  (0x00007ffec39bc000)
libssl.so.1.0.0 => /lib/x86_64-linux-gnu/libssl.so.1.0.0 (0x00007f7faad22000)
libcrypto.so.1.0.0 => /lib/x86_64-linux-gnu/libcrypto.so.1.0.0 (0x00007f7faa8dd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f7faa513000)
libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f7faa30f000)
/lib64/ld-linux-x86-64.so.2 (0x00007f7faaf8b000)

На CentOS 7 libssl.so.1.1 проживает в /usr/local/ssl/lib.

Поэтому мне просто пришлось добавить этот путь в места по умолчанию, где динамический загрузчик ищет библиотеки. Я создал отдельный файл для своего двоичного файла openssl с именем openssl-1.1.1c.conf, в /etc/ld.so.conf.d папка:

echo "/usr/local/ssl/lib" > /etc/ld.so.conf.d/openssl-1.1.1c.conf

Теперь это работает.

После сборки и установки open ssl openssl-1.1.0f я исправил ту же ошибку для lib libssl.so.1.1, создав программную ссылку:

ln -s /usr/local/lib/libssl.so.1.1 /usr/lib/libssl.so.1.1