dpkg 종속성을 어떻게 해결할 수 있습니까?


32
administrator@zlounes:~$ sudo apt-get dist-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:
 linux-server : Depends: linux-headers-server (= 3.2.0.37.44) but 3.2.0.37.45 is installed
E: Unmet dependencies. Try using -f.
administrator@zlounes:~$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-image-server linux-server
The following packages will be upgraded:
  linux-image-server linux-server
2 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
4 not fully installed or removed.
Need to get 0 B/4,458 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-image-server'
Setting up initramfs-tools (0.99ubuntu13.1) ...
update-initramfs: deferring update (trigger activated)
Setting up linux-image-3.2.0-37-generic (3.2.0-37.58) ...
Running depmod.
update-initramfs: deferring update (hook will be called later)
The link /initrd.img is a dangling linkto /boot/initrd.img-3.2.0-37-generic
Examining /etc/kernel/postinst.d.
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 3.2.0-37-generic /boot/vmlinuz-3.2.0-37-generic
update-initramfs: Generating /boot/initrd.img-3.2.0-37-generic

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-37-generic with 1.
run-parts: /etc/kernel/postinst.d/initramfs-tools exited with return code 1
Failed to process /etc/kernel/postinst.d at /var/lib/dpkg/info/linux-image-3.2.0-37-generic.postinst line 1010.
dpkg: error processing linux-image-3.2.0-37-generic (--configure):
 subprocess installed post-installation script returned error exit status 2
dpkg: dependency problems prevent configuration of linux-image-server:
 linux-image-server depends on linux-image-3.2.0-37-generic; however:
  Package linux-image-3.2.0-37-generic is not configured yet.
dpkg: error processing linux-image-server (--configure):
 dependency problems - leaving unconfigured
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Package linux-image-server is not configured yet.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.2.0-36-generic
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          No apport report written because the error message indicates its a followup error from a previous failure.

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.2.0-36-generic with 1.
dpkg: error processing initramfs-tools (--configure):
 subprocess installed post-installation script returned error exit status 1
No apport report written because MaxReports is reached already
                                                              Errors were encountered while processing:
 linux-image-3.2.0-37-generic
 linux-image-server
 linux-server
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

나는 많은 것을 시도했지만 이것을 작동시킬 수 없다. 나는 설치를 중단했다고 생각하고 그것을 막았다. Google에서 다양한 수정을 시도했습니다.

편집 (/ boot 폴더를 정리 한 후) :

administrator@zlounes:/boot$ sudo apt-get -f install
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Correcting dependencies... Done
The following extra packages will be installed:
  linux-server
The following packages will be upgraded:
  linux-server
1 upgraded, 0 newly installed, 0 to remove and 9 not upgraded.
1 not fully installed or removed.
Need to get 0 B/1,734 B of archives.
After this operation, 0 B of additional disk space will be used.
Do you want to continue [Y/n]? y
Traceback (most recent call last):
  File "/usr/bin/apt-listchanges", line 237, in <module>
    main()
  File "/usr/bin/apt-listchanges", line 48, in main
    debs = apt_listchanges.read_apt_pipeline(config)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in read_apt_pipeline
    return map(lambda pkg: filenames[pkg], order)
  File "/usr/share/apt-listchanges/apt_listchanges.py", line 83, in <lambda>
    return map(lambda pkg: filenames[pkg], order)
KeyError: 'linux-server'
dpkg: dependency problems prevent configuration of linux-server:
 linux-server depends on linux-image-server (= 3.2.0.37.44); however:
  Version of linux-image-server on system is 3.2.0.37.45.
 linux-server depends on linux-headers-server (= 3.2.0.37.44); however:
  Version of linux-headers-server on system is 3.2.0.37.45.
dpkg: error processing linux-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          E: Sub-process /usr/bin/dpkg returned an error code (1)
administrator@zlounes:/boot$

1
오류 상태에서 패키지 종속성에 문제가있는 이유는 gzip: stdout: No space left on device무엇입니까? 소프트웨어를 설치할 공간이 없기 때문에 종속성이 설치되지 않은 것처럼 보입니다.
Rinzwind

의 결과에 추가하십시오 df. 나는 당신의 생각 /boot파티션이 가득합니다.
Rinzwind

고맙습니다 :). 불쌍한 내 영어 사전에 감사하고 죄송합니다, (내가 코드 오류 내 첫 번째 게시물을 편집 한) 내 / 부팅 폴더를 청소했다하지만 난 다시 같은 오류가 발생했습니다
zlounes

"부팅 폴더 정리"란 그 폴더에서 파일을 삭제했음을 의미합니까? 아마도 그렇게 한 결과가 마음에 들지 않을 것입니다.
Jack

아니 좋습니다, 난 파일을 선택했습니다;)
zlounes

답변:


65

시스템의 상태가 양호하고 중단 된 설치에 문제가 없는지 확인하는 것이 좋습니다.

  dpkg --configure -a 

패키지 목록이 업데이트되고 다음에 문제가 없는지 확인하십시오.

 apt-get update

선택적으로 다음을 사용하여 업데이트 전에 모든 이전 데이터를 제거 할 수 있습니다.

 find /var/lib/apt/lists -type f  |xargs rm -f >/dev/null \

문제를 해결하기위한 다음 단계 는 잠시 동안 linux-server 패키지 를 제거 하는 것입니다. 실제 내용이없고 의존성 만 가져 오기 때문에 수행 할 수 있습니다.

이 패키지는 항상 서버 장비에 사용 가능한 최신 Linux 커널에 따라 달라집니다.

 dpkg --remove linux-server

이 단계 후에 모든 현재 종속성이 설치되어 있는지 확인하십시오.

apt-get install -f

모든 것이 정상이라면 이제 linux-server를 다시 설치할 수 있습니다 :

apt-get install linux-server

포스트 스크립트

linux-server12.04 에서 더 이상 사용되지 않습니다 . 또한 서버 장비 에는 일반 커널이 사용됩니다. 만나다apt-cache show linux-image-server

패키지 : linux-image-server ...

섹션 : 메타 패키지

....

linux-image-3.2.0-23- generic , linux-firmware에 따라 다릅니다.


대단히 감사합니다. 서버를 다시 설치하는 데 하루를 소비한다고 생각했습니다.
uncletall

8

정기적으로 내 컴퓨터의 / boot를 정리해야하고 일반적으로 너무 가득 차면 업데이트가 중단됩니다. 궁극적 인 솔루션이 무엇인지 모르지만 사용하는 프로세스가 작동하는 것 같습니다.

로 시작 sudo su

그런 다음 / boot로 이동 ls -lSrh하여 아래쪽에있는 것이 가장 rm큽니다. 충분한 공간을 확보 할 수있는 오래된 것 중 하나입니다.

그런 다음 위의 내용 중 일부를 발췌하여 다음을 시도하십시오.

  1. sudo apt-get remove linux-server
  2. dpkg --configure -a
  3. apt-get update
  4. apt-get install -f
  5. apt-get autoremove
  6. dpkg --get-selections|grep 'linux-image*'|awk '{print $1}'|egrep -v "linux-image-$(uname -r)|linux-image-generic" |while read n;done
  7. apt-get install linux-image-server linux-server
  8. reboot

문제가 발생하면 여기에 의견을 남기면 문제가 무엇인지 알 수 있습니다.

pitti PPA를 사용할 때 postgresql-9.1 패키지 문제에 이러한 종류의 작업이 작동하는 것을 보았습니다.

한 번은 절차를 실행했을 때 grub에 문제가있었습니다. A는 이렇게 apt-get install --reinstall grub그것을 해결했습니다.

하나의 라이너에 감사드립니다 : http://ubuntuforums.org/showpost.php?p=12180959&postcount=7

행운을 빕니다!


단계 6은 잘린 것처럼 보입니다 : dpkg --get-selections | grep 'linux-image *'| awk '{print $ 1}'| egrep -v "linux-image-$ (uname -r) | linux-image -generic "| 읽는 동안 n; do apt-get -y 제거 $ n; 완료
Tom Swifty

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.