배경

배경

배경

나는 "좋지 않은" 방법으로 내 libc6 버전을 업그레이드하려고 합니다. 모든 것은 MariaDB를 10.1에서 10.2로 업데이트하려고 할 때 시작되었습니다. 그런 다음 설치된 libc6=1.24가 충분하지 않고 libc6=1.27이 필요하다는 사실을 발견했습니다. 여기에서 다운로드한 패키지를 사용 했을 때 dpkg -i설치가 성공적으로 중단되었습니다 .http://archive.ubuntu.com/ubuntu/pool/main/g/glibc/(구체적으로libc6_2.27-3ubuntu1_amd64.deb). 나는 다른 패키지를 자동으로 구성 해제하도록 허용했는데, 그 시점에서 나는 그것을 망쳤다는 것을 알았습니다.

내 시스템이 실행 중이야

root@redfox:~# lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description:    Debian GNU/Linux 9.13 (stretch)
Release:    9.13
Codename:   stretch

현재 문제

이제 dpkg를 사용하거나 실행하려고 할 때마다 apt-get upgrade프로그램이 누락되고 종속성이 누락/손상됩니다. 출력은 다음과 같습니다.

root@redfox:~# sudo apt-get install -f
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following packages were automatically installed and are no longer required:
  cups-core-drivers hplip-data libart-2.0-2 libcupscgi1 libgutenprint2 libsane-hpaio python3-pexpect python3-pil python3-ptyprocess
  python3-renderpm python3-reportlab python3-reportlab-accel
Use 'sudo apt autoremove' to remove them.
The following packages will be REMOVED:
  hplip libgcc1:i386 printer-driver-gutenprint printer-driver-hpcups printer-driver-postscript-hp
0 upgraded, 0 newly installed, 5 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 4370 kB disk space will be freed.
Do you want to continue? [Y/n] n
Abort.
root@redfox:~# dpkg --configure -a
dpkg: warning: 'ldconfig' not found in PATH or not executable
dpkg: error: 1 expected program not found in PATH or not executable
Note: root's PATH should usually contain /usr/local/sbin, /usr/sbin and /sbin

그것을 고치기 위해 나는 무엇을 하였는가?

다시 libc6 버전 1.24로 다운그레이드를 시도했는데 잘 되는지는 잘 모르겠습니다. 패키지 캐시 지우기, 자동 청소 등도 시도했지만 안타깝게도 다음에 어디로 가야할지 혼란 스럽습니다. 제가 할 수 있는 일이 무엇인지 알아보려고 노력했지만, 불행하게도 이것이 우리 주에 매우 특정한 문제인 것 같아서 이해하기 어렵습니다.

편집 #1

cp /bin/true /sbin/ldconfig누락된 것을 발견하여 이것을 시도해 보았습니다 /sbin/ldconfig. 그러나 시스템의 피해는 당초 생각했던 것보다 더 심각한 것으로 보인다. 아래 Stephen Kitt의 답변에 제안된 패키지를 설치하려고 할 때의 출력은 다음과 같습니다.

sudo dpkg -i libc-bin_2.24-11+deb9u4_amd64.deb locales_2.24-11+deb9u4_all.deb
Selecting previously unselected package libc-bin.
(Reading database ... 202484 files and directories currently installed.)
Preparing to unpack libc-bin_2.24-11+deb9u4_amd64.deb ...
Unpacking libc-bin (2.24-11+deb9u4) ...
Selecting previously unselected package locales.
Preparing to unpack locales_2.24-11+deb9u4_all.deb ...
Unpacking locales (2.24-11+deb9u4) ...
dpkg: dependency problems prevent configuration of libc-bin:
 libc-bin depends on libc6 (>> 2.24); however:
  Package libc6:amd64 is not configured yet.
 libc-bin depends on libc6 (<< 2.25); however:
  Version of libc6:amd64 on system is 2.27-3ubuntu1.

dpkg: error processing package libc-bin (--install):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of locales:
 locales depends on libc-bin (>> 2.24); however:
  Package libc-bin is not configured yet.
 libc6:amd64 (2.27-3ubuntu1) breaks locales (<< 2.27) and is unpacked but not configured.
  Version of locales to be configured is 2.24-11+deb9u4.

dpkg: error processing package locales (--install):
 dependency problems - leaving unconfigured
Errors were encountered while processing:
 libc-bin
 locales

답변1

특히 모든 libc 관련 패키지를 다시 설치해야 할 수도 있습니다.libc6그 자체,libc-bin,locales, 그리고libc-l10n:

wget http://deb.debian.org/debian/pool/main/g/glibc/libc6_2.24-11+deb9u4_amd64.deb http://deb.debian.org/debian/pool/main/g/glibc/libc-bin_2.24-11+deb9u4_amd64.deb http://deb.debian.org/debian/pool/main/g/glibc/locales_2.24-11+deb9u4_all.deb http://deb.debian.org/debian/pool/main/g/glibc/libc-l10n_2.24-11+deb9u4_all.deb
dpkg -i libc6_2.24-11+deb9u4_amd64.deb libc-bin_2.24-11+deb9u4_amd64.deb locales_2.24-11+deb9u4_all.deb libc-l10n_2.24-11+deb9u4_all.deb

귀하의 것을 확인하십시오 PATH(질문에 표시된 마지막 오류 메시지 참조).

귀하의 패키지 가 사라졌으므로 패키지를 설치 /sbin/ldconfig하려면 약간의 수정이 필요합니다 .dpkg

cp /bin/true /sbin/ldconfig

이렇게 하면 dpkg실제 ldconfig설치가 진행됩니다.

답변2

apt-get upgrade -f누락되거나 손상된 패키지를 복구하려면 -f를 실행해 보세요 . 이것이 실패하면 전체 출력을 게시하십시오.

자동 복구 실패 시 추가 옵션:

  • 손상된 패키지를 찾아서 제거한 후 소스에서 다시 설치해 보십시오.
  • echo $PATH올바른 위치가 포함되어 있는지 확인 하세요 .

팁: 데비안용 새 패키지가 필요한 경우 우분투 패키지를 사용하지 마세요. 이는 작동할 수 있지만 시스템이 손상될 가능성이 높습니다. 데비안 시스템의 더 나은 소스는 데비안의 stable/testing 브랜치에 있는 패키지입니다. 또 다른 옵션은 "백포트"를 사용하는 것입니다. 최신 버전의 대상 소프트웨어의 경우 이러한 패키지에는 가능한 한 적은 수의 새 라이브러리가 필요합니다.

관련 정보