문제 설명 #
Debian Buster를 업그레이드하는 동안 사용자는 libc6 패키지와 관련하여 다음과 같은 오류 메시지가 나타나는 문제를 겪을 수 있습니다.
/usr/bin/perl: 공유 라이브러리를 로드하는 동안 오류가 발생했습니다: libcrypt.so.1: 공유 객체 파일을 열 수 없습니다: 해당 파일 또는 디렉토리가 없습니다(데이터베이스를 읽는 중... 현재 49108개의 파일과 디렉토리가 설치되었습니다.) 압축 해제 준비 중.../libc-dev-bin_2.36-9+deb12u3_amd64.deb... (2.36-9+deb12u3) 위에 있는 libc-dev-bin(2.28-10+deb10u1)을 압축 해제하는 중... libc6:amd64(2.36-9+deb12u3)를 설정하는 중... /usr/bin/perl: 공유 라이브러리를 로드하는 동안 오류가 발생했습니다: libcrypt.so.1: 공유 객체 파일을 열 수 없습니다: 해당 파일 또는 디렉토리가 없습니다 dpkg: 패키지 libc6:amd64(--configure)를 처리하는 동안 오류가 발생했습니다: libc6:amd64 패키지 사후 설치 스크립트 하위 프로세스가 오류 종료 상태 127을 반환했습니다. 처리하는 동안 오류가 발생했습니다: libc6:amd64 E: 하위 프로세스 /usr/bin/dpkg가 오류 코드(1)를 반환했습니다.
분석 #
이 오류는 데비안 버스터에서 북웜으로 업그레이드하는 과정에서 발생하는데, 북웜에서는 의도적으로 피하려고 했던 libc 와 libcrypt 간의 순환 종속성 때문입니다. 이 순환 종속성으로 인해 필수 공유 라이브러리인 libcrypt.so.1이 설치되지 않습니다 . libc6 패키지가 제대로 구성되지 못하고 오류 종료 상태가 발생합니다. 이 사례는 북웜에서 순환 종속성을 방지하려는 노력이 오히려 업그레이드 과정에서 잠재적인 문제를 야기할 수 있음을 보여줍니다.
해결 단계 #
이 문제를 해결하려면 아래에 설명된 수동 해결 단계를 따르세요.
1. 터미널을 열고 임시 디렉토리로 이동합니다.
root@noid-ce-01:~# cd $(mktemp -d) root@noid-ce-01:/tmp/tmp.XX#
2. libcrypt1 패키지를 다운로드하세요.
root@noid-ce-01:/tmp/tmp.XX# apt -y libcrypt1 다운로드
3. libcrypt1 패키지의 내용을 압축 해제합니다.
root@noid-ce-01:/tmp/tmp.XX# dpkg-deb -x libcrypt1_*.deb .
4. 추출한 라이브러리 파일을 시스템의 라이브러리 디렉터리에 복사합니다.
root@noid-ce-01:/tmp/tmp.XX# cp -ra lib/* /lib/
5. 손상된 설치가 있으면 수정하십시오.
root@noid-ce-01:/tmp/tmp.XX# apt -y --fix-broken 설치
6. 최소 소프트웨어 스택 업그레이드를 완료하십시오.
root@noid-ce-01:~# apt-get 업그레이드 root@noid-ce-01:~# apt-get dist-upgrade
이 단계를 수행하면 누락된 libcrypt.so.1 라이브러리가 설치되고 libc6 패키지가 오류 없이 구성될 것입니다. 그러면 사용자는 이전에 보고된 문제 없이 Debian Buster 업그레이드를 진행할 수 있습니다.
참고: 이러한 명령을 실행하는 데 필요한 권한이 있는지 확인하고 시스템 업그레이드를 수행하기 전에 중요한 데이터를 백업하는 것을 고려하세요.