운영 체제 및 버전: Debian 8
아키텍처: 64비트
패키지를 업데이트하려고 하는데 다음 오류가 발생합니다.
# apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
You might want to run 'apt-get -f install' to correct these.
The following packages have unmet dependencies:
libc-bin : Depends: libc6 (< 2.29) but 2.31-4 is installed
libc-dev-bin : Depends: libc6 (< 2.29) but 2.31-4 is installed
libc6 : Depends: libnss-nisplus but it is not installable
libc6-dev : Depends: libc6 (= 2.28-8) but 2.31-4 is installed
locales : Depends: libc-bin (> 2.31) but 2.28-8 is installed
Depends: libc-l10n (> 2.31) but 2.28-8 is installed
openssh-server : Depends: openssh-client (= 1:8.3p1-1) but 1:6.7p1-5+deb8u8 is installed
Depends: runit-helper (>= 2.8.14~) but it is not installable
Depends: libcom-err2 (>= 1.43.9) but it is not installable
Depends: libgssapi-krb5-2 (>= 1.17) but 1.12.1+dfsg-19+deb8u5 is installed
Depends: libkrb5-3 (>= 1.13~alpha1+dfsg) but 1.12.1+dfsg-19+deb8u5 is installed
E: Unmet dependencies. Try using -f.
명령을 시도하면 apt-get -f install
다음 오류가 발생합니다.
# apt-get -f install
Reading package lists... Done
Building dependency tree
Reading state information... Done
Correcting dependencies... failed.
The following packages have unmet dependencies:
libc-bin : Depends: libc6 (< 2.29) but 2.31-4 is installed
libc-dev-bin : Depends: libc6 (< 2.29) but 2.31-4 is installed
libc6 : Depends: libnss-nisplus but it is not installable
libc6-dev : Depends: libc6 (= 2.28-8) but 2.31-4 is installed
locales : Depends: libc-bin (> 2.31) but 2.28-8 is installed
Depends: libc-l10n (> 2.31) but 2.28-8 is installed
openssh-server : Depends: openssh-client (= 1:8.3p1-1) but 1:6.7p1-5+deb8u8 is installed
Depends: runit-helper (>= 2.8.14~) but it is not installable
Depends: libcom-err2 (>= 1.43.9) but it is not installable
Depends: libgssapi-krb5-2 (>= 1.17) but 1.12.1+dfsg-19+deb8u5 is installed
Depends: libkrb5-3 (>= 1.13~alpha1+dfsg) but 1.12.1+dfsg-19+deb8u5 is installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.
E: Unable to correct dependencies
내 거소스 목록문서:
# cat /etc/apt/sources.list
deb http://mirrors.kernel.org/debian/ jessie main
deb-src http://mirrors.kernel.org/debian/ jessie main
deb http://security.debian.org/ jessie/updates main
deb-src http://security.debian.org/ jessie/updates main
deb http://mirrors.kernel.org/debian/ jessie-updates main
deb-src http://mirrors.kernel.org/debian/ jessie-updates main
deb http://ftp.debian.org/debian/ testing main contrib non-free
deb-src http://ftp.debian.org/debian/ testing main contrib non-free
apt-cache 정책의 출력:
# apt-cache policy
Package files:
100 /var/lib/dpkg/status
release a=now
500 http://mirrors.kernel.org/debian/ jessie-updates/main Translation-en
500 http://mirrors.kernel.org/debian/ jessie-updates/main amd64 Packages
release v=label=Debian,o=Debian,a=oldoldstable-updates,n=jessie-updates,l=Debian,c=main
origin mirrors.kernel.org
500 http://security.debian.org/ jessie/updates/main Translation-en
500 http://security.debian.org/ jessie/updates/main amd64 Packages
release v=8,o=Debian,a=oldoldstable,n=jessie,l=Debian-Security,c=main
origin security.debian.org
500 http://mirrors.kernel.org/debian/ jessie/main Translation-en
500 http://mirrors.kernel.org/debian/ jessie/main amd64 Packages
release v=8.11,o=Debian,a=oldoldstable,n=jessie,l=Debian,c=main
origin mirrors.kernel.org
Pinned packages:
nginx -> (not found)
나는 여기에 갇혀있다. 도와주세요.
감사해요.
답변1
귀하의 시스템에는 데비안 개발 릴리스의 다양한 단계에서 가져온 패키지 세트가 많이 혼합되어 있습니다. 예를 들어, 해당 libc6
패키지는 현재 테스트 중인 버전(Debian 11이 될 예정)용이고 해당 locales
패키지는 Debian 10 개발 중 어느 시점의 이전 버전용입니다...
사물을 질서정연하게 복원하려면 목표를 선택해야 합니다.풀어 주다을 선택한 다음 해당 항목으로 전환하세요. 시스템이 Debian 8에 있어야 하고 apt
그에 맞게 구성했다면(주어진 출력 apt-cache policy
) Debian 8 또는 Debian 9로 시작하는 것이 더 나을 것입니다. 데비안 8을 가정해 봅시다:
testing
항목 삭제/etc/apt/sources.list
;apt
Debian 8로 다운그레이드 하라고 지시합니다 :printf "Package: *\n Pin: release o=Debian n=jessie\n Pin-Priority: 1001\n" > /etc/apt/preferences.d/jessie
"업그레이드"를 통해 다운그레이드:
apt-get update apt-get dist-upgrade
이 일을 시작하기 전에테스트 저장소가 처음에 추가된 이유를 확인하려면 팀 동료에게 확인해야 합니다. 아마도 일부 패키지가 의도적으로 거기에서 당겨졌을 것입니다.
데비안 8로 돌아가면, 다음을 수행해야 합니다.ELTS 저장소 추가(계속 사용하실 계획이라면스폰서가 되는 것을 고려해 보세요) 또는 업그레이드데비안 9로어쩌면 심지어데비안 10으로.
답변2
... 솔직히 말해서 귀하의 시스템은 심각하게 구식입니다.
"testing"은 다음 "안정적인" 릴리스가 될 저장소인 스테이징 저장소의 정적 이름입니다.
이 시점에서는 Bullseye - debian 11이 됩니다. "Jessie"는 데비안 8로, [2018][1]에 중단되었으며 심지어 7월에 장기 지원도 중단되었습니다.
나의심하다이 라인은 Jessie가 아직 안정적이고 누군가가 사용 가능한 것보다 몇 가지 새로운 패키지를 원했을 때 다시 추가되었습니다. 이 특별한 방법은 심각하게 금기 사항이며, 방금 그 이유를 알아냈습니다.
다행스럽게도,희망, 아직 아무것도 설치되어 있지 않으므로 "testing"이 포함된 행을 제거하면 sources.list
오류가 사라질 것입니다. 그러나 앞서 말했듯이 데비안 8은 단종되었으며 거의 어떤 종류의 업데이트도 받지 못했습니다. 중요한 부분을 제외하고 2년 동안 보안 수정 사항 외에는 지난 3개월 동안에도 그러한 수정 사항이 없었습니다.
물론 이것이 현재의 문제를 해결하지는 못합니다. 적어도 그렇게 해야 할 것 같습니다.시작dist를 통해 현재 안정 버전(10)으로 업그레이드하세요. 아마도 2016년 경까지 거슬러 올라가는 nginx 버전에 대한 지원을 받을 수 없을 것 같습니다.