Когда я запускаю "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
.После копирования библиотек необходимо создать символическую ссылку.
После создания символической ссылки также потребовалось перестроить кеш ldconfig :
источник
С вашей оригинальной версией OpenSSL он знал, как найти общие библиотеки, потому что
/usr/lib64
включен в путь поиска компоновщика. Когда вы загрузили и скомпилировали «локальную» копию OpenSSL, общие библиотеки были размещены/usr/local/lib64
по умолчанию. Поэтому вам, вероятно, просто нужно добавить этот каталог в путь поиска компоновщика, например, как (root):затем выполните:
Я верю, что это решит вашу проблему.
источник
sudo echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
возникнет ошибка «Отказано в доступе», потому что вторая половина команды (запись в файл) не выполняется от имени пользователя root. Если это произойдет, попробуйтеsudo sh -c "echo '/usr/local/lib64' >> /etc/ld.so.conf.d/openssl.conf"
вместо этого.Я получил эту ошибку, используя Termux на ChromeOS, что привело к аварийному завершению работы программ
npm
иnode
командной строки.Запуск
pkg upgrade
исправил проблему!источник
Вы можете переустановить его, используя
yum install -y openssl-devel
источник
openssl-devel
зависит от названного пакетаopenssl
. Имейте в виду, что прошло много времени с тех пор, как я прикоснулсяyum
, поэтому я не могу проверить синтаксис команды для вас.code
yum удалить openssl yum удалить openssl-devel yum очистить всеopenssl
(и неopenssl-devel
) должна быть хорошим началом.То, что сказал @benedict, сработало для меня. Однако вы можете обнаружить, что некоторые символические ссылки указывают на более старые версии. Запуск
ls -l libcrypto*
из / usr / libs покажет вам ссылки. Как в приведенном ниже примере:Затем вы захотите сначала удалить существующую ссылку, набрав,
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
:Это создаст
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
Прокомментируйте настройки каталога lib и добавьте хороший путь
Когда вы закончите редактирование, запустите эту команду:
Тогда у вас будут хорошие настройки при запуске:
ldd / usr / bin / openssl
Перед этим исправить:
После исправления я предоставил:
источник
На 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
источник