Debian 6 서버에서는 종속성 문제로 인해 nis(또는 모든 패키지)를 설치할 수 없습니다. 문제를 해결하려고 하면 Python 오류가 발생합니다. 이 문제를 해결하고 패키지 설치 기능을 다시 얻으려면 어떻게 해야 합니까?
구글링을 해보니 같은 오류 메시지를 보고하는 사람이 여러 명 있었지만 해결 방법이 없었습니다. SE도 확인했지만 소용이 없었습니다. 이는 우리 회사의 수십 대의 서버에 영향을 미쳤습니다.
root 7 # apt-get install nis
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:
libglib2.0-dev : Depends: libglib2.0-0 (= 2.24.2-1) but 2.40.0-2 is to be installed
nis : Depends: libdbus-glib-1-2 (>= 0.78) but it is not going to be installed
Depends: libslp1 but it is not going to be installed
E: Unmet dependencies. Try 'apt-get -f install' with no packages (or specify a solution).
그래서 나는 제안된 대로 이 문제를 해결하려고 노력했습니다.
root 8 # apt-get -f install
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:
xfonts-encodings ttf-dejavu-core xfonts-utils libxfont1 libpango1.0-common libdb5.1 libxcb-render-util0
Use 'apt-get autoremove' to remove them.
The following extra packages will be installed:
libglib2.0-dev
Suggested packages:
libglib2.0-doc
The following packages will be upgraded:
libglib2.0-dev
1 upgraded, 0 newly installed, 0 to remove and 559 not upgraded.
42 not fully installed or removed.
Need to get 0 B/2642 kB of archives.
After this operation, 3982 kB of additional disk space will be used.
Do you want to continue [Y/n]? y
dpkg: error processing /var/cache/apt/archives/libglib2.0-dev_2.40.0-2_amd64.deb (--unpack):
parse error, in file '/var/lib/dpkg/tmp.ci/control' near line 7 package 'libglib2.0-dev':
`Depends' field, invalid package name `python:any': character `:' not allowed (only letters, digits and characters `-+._')
configured to not write apport reports
Errors were encountered while processing:
/var/cache/apt/archives/libglib2.0-dev_2.40.0-2_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)
root 9 #
나도 시도했다
apt-get autoremove
하지만 그게 내가 하라는 말일 뿐이야
apt-get -f install
다시.
문제의 파일을 보려고 했지만 다음과 같은 결과를 얻었습니다.
root 11 # cat /var/lib/dpkg/tmp.ci/control
/var/lib/dpkg/tmp.ci/control: No such file or directory
요청대로:
root 14 # apt-cache policy nis libglib2.0-dev libglib2.0-0 libdbus-glib-1-2 libslp1
libglib2.0-0:
Installed: 2.40.0-2
Candidate: 2.40.0-2
Version table:
*** 2.40.0-2 0
500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
100 /var/lib/dpkg/status
libdbus-glib-1-2:
Installed: (none)
Candidate: 0.102-1
Version table:
0.102-1 0
500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
libglib2.0-dev:
Installed: 2.24.2-1
Candidate: 2.40.0-2
Version table:
2.40.0-2 0
500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
*** 2.24.2-1 0
100 /var/lib/dpkg/status
nis:
Installed: (none)
Candidate: 3.17-33
Version table:
3.17-33 0
500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
libslp1:
Installed: (none)
Candidate: 1.2.1-9
Version table:
1.2.1-9 0
500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
요청대로:
apt-cache policy
Package files:
100 /var/lib/dpkg/status
release a=now
500 http://security.debian.org/ stable/updates/main Translation-en
500 http://security.debian.org/ stable/updates/main amd64 Packages
release v=7.0,o=Debian,a=stable,n=wheezy,l=Debian-Security,c=main
origin security.debian.org
500 http://ftp.us.debian.org/debian/ unstable/main Translation-en
500 http://ftp.us.debian.org/debian/ unstable/main amd64 Packages
release o=Debian,a=unstable,n=sid,l=Debian,c=main
origin ftp.us.debian.org
Pinned packages:
답변1
이것은 흥미로운 일입니다. 포스터는 SSH를 통해 원격으로 접근할 수 있는 기계를 수리하려고 합니다. 이 시스템은 libc6을 포함하여 부분적으로 불안정한 상태로 업그레이드되었습니다. 그러나 부품은 여전히 안정적인 형태인 반면 apt는 압착된 버전입니다. 포스터는 기계가 완전히 안정적이기를 원합니다.
나는 포스터를 이끌고 그의 기계를 수리했습니다. 채팅 세션이 다음으로 시작됩니다.http://chat.stackexchange.com/transcript/message/15047213#15047213
요약:
- resources.list에는 불안정한 소스만 포함되어 있습니다. 안정이 추가되었습니다. 또한
/etc/apt/preferences
테스트 및 불안정한 우선순위를 50으로 설정하는 섹션을 추가했습니다. - Apt가 안정적인 버전으로 업그레이드되었습니다.
- 어떤 패키지가 불안정한 패키지인지에 대한 정보를 얻으려면 설치
apt-show-versions
하고 실행하십시오 .apt-show-versions | grep unstable
- 제외하고 제거되었습니다
libc6
. - 불안정한 원인을 주석으로 처리하세요. 참고:
실행하기 전에 불안정한 소스를 제거하면 불안정한 패키지에서 가져온 패키지를 구별할 수 없게apt-show-versions
됩니다 .apt-show-versions
- 불안정에서
libc6
안정으로 하향 조정되었습니다. - 그런 다음
apt-get upgrade
밀접하게 따라갔습니다apt-get dist-upgrade
. - 2.6 커널 패키지가 제거되었습니다.
최종 생각: 를 사용하는 것보다 어떤 패키지가 불안정한 패키지인지 알아내는 더 좋은 방법이 있을 수 있지만 apt-show-versions
현재로서는 알 수 없습니다. 그렇다면 댓글을 남겨주세요.