“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
기본적으로 공유 라이브러리가 배치되었습니다 . 따라서이 디렉토리를 링커의 검색 경로에 다음과 같이 추가해야합니다 (루트).
echo "/usr/local/lib64" > /etc/ld.so.conf.d/openssl.conf
그런 다음 실행하십시오.
ldconfig
문제가 해결 될 것으로 생각합니다.
답변
ChromeOS에서 Termux를 사용 하여이 오류가 발생하여 npm
및 node
명령 줄 프로그램이 중단되었습니다.
실행 pkg upgrade
하면 문제가 해결되었습니다!
답변
다음을 사용하여 다시 설치할 수 있습니다
yum install -y openssl-devel
답변
@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
@benedict에서 언급 한대로 libcrypto.so.1.1을 입력 한 다음 복사 하여 기존 링크를 먼저 제거하려고합니다 . 마지막으로 새 링크를 만들 수 있습니다.
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
이렇게하면 소프트 링크가 만들어지고 계속 사용할 수 있습니다.