누락된 libcrypto.so.1.1을 수정하는 방법은 무엇입니까?

누락된 libcrypto.so.1.1을 수정하는 방법은 무엇입니까?

내 시스템에서 nodejs를 실행하려고 할 때 처음으로 이 문제가 발생했습니다. 다음 오류 메시지가 나타납니다.

node: error while loading shared libraries: libcrypto.so.1.1: cannot open shared object file: No such file or directory

또한 VirtualBox를 실행하려고 할 때 다음 메시지가 표시되었습니다. "libcrypto.so.1.1이 없기 때문에 시작할 수 없습니다."

나는 내 OS로 Arch를 사용하지만 내가 찾은 모든 것은 Ubuntu용입니다.

답변1

나는 또한 아치에서 이것을 만났습니다. 내 솔루션도 설치하는 것이 었습니다.openssl-1.1제공되는 것입니다 libcrypto.so.1.1.

업그레이드가 영향을 미칠 수도 있습니다 pacman. 그렇다면 미러에서 패키지를 다운로드하고 libcrypto.so.1.1및 를 수동으로 libssl.so.1.1실행 /usr/lib/해야 합니다.

pacman -U --overwrite '/usr/lib/*' openssl-1.1-1.1.1.s-2-x86_64.pkg.tar.zst

전체 패키지를 설치합니다.

그렇다면 sudo손상되었을 수도 있으므로 pacman로그인할 루트 비밀번호가 없으면 su설치 디스크에서 복원해야 할 수도 있습니다.

답변2

NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINTS
sda      8:0    0 476.9G  0 disk
├─sda1   8:1    0   512M  0 part
├─sda2   8:2    0     1G  0 part
├─sda3   8:3    0  29.3G  0 part
├─sda4   8:4    0  75.1G  0 part 
└─sda5   8:5    0   371G  0 part
sdb      8:16   0 596.2G  0 disk
├─sdb1   8:17   0 146.6G  0 part
├─sdb2   8:18   0     1K  0 part
├─sdb5   8:21   0 248.9G  0 part
└─sdb6   8:22   0 200.7G  0 part
sdc      8:32   1  28.7G  0 disk
├─sdc1   8:33   1  28.6G  0 part
└─sdc2   8:34   1    32M  0 part

kernel panic터미널에 접근할 수 없는 분들을 위해 pacman:

  • Live CD/USB를 사용하여 부팅하세요.
  • 내가 설명한 대로 lsblk명령을 실행 하고 설치합니다 (그림 참조).//boot
  • /이 경우 내 상황을 알고 sda3boot상황 sda1은 이렇습니다.
  • 실행 mount /dev/sda3 /mnt하고mount /dev/sda1 /mnt/boot/efi
  • 그런 다음 실행 arch-chroot /mnt하고 실행하십시오.pacman -Syu
  • 오류가 발생하는 경우따라서 다음 명령을 시도해 볼 수 있습니다.pacman --root /mnt --cachedir /mnt/var/cache/pacman/pkg --config /mnt/etc/pacman.conf -Syu

감사해요리차드그리고 다른 사람들은아치 전보 그룹

답변3

업그레이드를 중단하는 실수를 저질렀고 라이브러리가 누락되는 문제가 발생했습니다. pacman은 이전 버전의 libcrypto를 원했지만 openssl이 버전 3으로 업그레이드되었기 때문에 패키지를 업그레이드할 수 있도록 pacman-static을 다운로드해야 했습니다. 또한 주요 문제가 있었기 때문에 libcrypto 오류를 해결하기 위해 openssl-1.1을 설치하고 주요 문제를 해결하기 위해 archlinux-keyring을 설치했습니다. 그 후, 나는 다른 사람의 복사본이 아닌 최신 버전이 있는지 확인하기 위해 yay를 사용하여 Arch 사용자 저장소에서 pacman-static을 설치했습니다.

답변4

다른 모든 답변이 말하려는 내용을 이해하지 못합니다.

내 RHEL 7.9에는 이것이 있습니다

ls -l /lib/libcrypto*

lrwxrwxrwx. 1 root root      19 Apr 19  2022 libcrypto.so -> libcrypto.so.1.0.2k
-rwxr-xr-x. 1 root root 1440264 Mar  4  2016 libcrypto.so.0.9.8e
lrwxrwxrwx. 1 root root      19 Apr 19  2022 libcrypto.so.10 -> libcrypto.so.1.0                                             .2k
-rwxr-xr-x. 1 root root 2520920 Mar 23  2022 libcrypto.so.1.0.2k
lrwxrwxrwx. 1 root root      19 Jun 11  2021 libcrypto.so.6 -> libcrypto.so.0.9.8e

이와 같은 오류가 표시되고 error while loading shared libraries: libcrypto.so.1.1라이브러리를 설치했지만 특정 파일(또는 링크)이 .so.1.1존재하지 않지만 위에 표시된 것과 같은 다른 번호가 표시된 경우 다음과 같은 링크를 만들 수 있습니다.

귀하의 경우 사용 가능한 라이브러리는 입니다. libcrypto.so보시다시피 해당 rpm을 제공하는 OpenSSL의 버전에 따라 적절한 버전의 .so 파일에 대한 링크가 있습니다. 시간이 지남에 따라 업데이트되므로 libcrypto.so가리키는 내용도 그에 따라 변경됩니다.

하지만 당신이 원하는 것은 libcrypto.so.1.1링크를 만들고 그것을 가리키는 것입니다.libcrypto.so

.so 파일이 있는 폴더에서 이 명령을 실행하면 됩니다.

ln -s libcrypto.so libcrypto.so.1.1

이렇게 하면 사용하는 모든 소프트웨어가 특정 .so 버전(귀하의 경우 .so.1.1)을 참조하도록 특별히 코딩되어(제 생각에는 잘못된 것 같지만) 문제 없이 실행될 수 있습니다. 최신 버전의 OpenSSL(또는 다른 버전)이 사용 중인 코드와 작동하지 않는 경우 그렇지 않은 경우 99%의 시간 동안 작동하므로 문제를 해결할 수 있습니다.공유 라이브러리를 찾을 수 없습니다.실수.

관련 정보