dpkg : 의존성 문제로 initramfs-tools의 구성을 방해


10

평소처럼이 명령으로 Kubuntu 12.04 시스템의 업그레이드를 시작했습니다.

sudo apt-get --show-upgraded dist-upgrade

나중에 돌아와서 실패했습니다.

Preconfiguring packages ...
(Reading database ... 478306 files and directories currently installed.)
Preparing to replace  ...
Unpacking replacement base-files ...
Processing triggers for man-db ...
Processing triggers for install-info ...
...
Processing triggers for initramfs-tools ...
update-initramfs: Generating /boot/initrd.img-3.8.0-32-lowlatency

gzip: stdout: No space left on device
E: mkinitramfs failure cpio 141 gzip 1
update-initramfs: failed for /boot/initrd.img-3.8.0-32-lowlatency with 1.
dpkg: error processing initramfs-tools (--unpack):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

여기에 문제가 있습니다 : $ df -h 출력 :

Filesystem                    Size  Used Avail Use% Mounted on
/dev/sda1                     894M  879M     0 100% /boot

이전 파일을 수동으로 삭제했으며 이제 일부 공간이 비어 있습니다.

Filesystem                    Size  Used Avail Use% Mounted on
/dev/sda1                     894M  129M  717M  16% /boot

다음에 이것을 실행했습니다.

sudo apt-get autoremove

다음:

sudo apt-get -f install 산출:

The following extra packages will be installed:
  initramfs-tools
The following packages will be upgraded:
  initramfs-tools

dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (<< 0.99ubuntu13.3.1~); however:
  Version of initramfs-tools-bin on system is 0.99ubuntu13.4.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                         Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

sudo apt-get install initramfs-tools
위의 실패

dpkg -l initramfs-tools 산출:

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name           Version        Description
+++-==============-==============-============================================
iF  initramfs-tool 0.99ubuntu13.3 tools for generating an initramfs

sudo apt-get install --reinstall initramfs-tools 산출:

The following packages will be upgraded:
  initramfs-tools
1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/49.2 kB of archives.
After this operation, 0 B of additional disk space will be used.
dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (<< 0.99ubuntu13.3.1~); however:
  Version of initramfs-tools-bin on system is 0.99ubuntu13.4.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                         Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

출력은 다음과 같습니다 apt-cache policy initramfs-tools-bin initramfs-tools.

initramfs-tools-bin:
  Installed: 0.99ubuntu13.4
  Candidate: 0.99ubuntu13.4
  Version table:
 *** 0.99ubuntu13.4 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
        100 /var/lib/dpkg/status
     0.99ubuntu13 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages
initramfs-tools:
  Installed: 0.99ubuntu13.3
  Candidate: 0.99ubuntu13.4
  Version table:
     0.99ubuntu13.4 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise-updates/main amd64 Packages
 *** 0.99ubuntu13.3 0
        100 /var/lib/dpkg/status
     0.99ubuntu13 0
        500 http://us.archive.ubuntu.com/ubuntu/ precise/main amd64 Packages

아래 제안 된대로 다음 단계는 다음과 같습니다.

$ sudo apt-get update
$ sudo apt-get -f install initramfs-tools=0.99ubuntu13 initramfs-tools-bin=0.99ubuntu13

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  ...
Use 'apt-get autoremove' to remove them.
The following packages will be DOWNGRADED:
  initramfs-tools initramfs-tools-bin
0 upgraded, 0 newly installed, 2 downgraded, 0 to remove and 4 not upgraded.
1 not fully installed or removed.
Need to get 59.2 kB of archives.
After this operation, 2,048 B disk space will be freed.
Do you want to continue [Y/n]? 
Get:1 http://us.archive.ubuntu.com/ubuntu/ precise/main initramfs-tools all 0.99ubuntu13 [49.2 kB]
Get:2 http://us.archive.ubuntu.com/ubuntu/ precise/main initramfs-tools-bin amd64 0.99ubuntu13 [9,988 B]
Fetched 59.2 kB in 0s (124 kB/s)            
dpkg: warning: downgrading initramfs-tools-bin from 0.99ubuntu13.4 to 0.99ubuntu13.
(Reading database ... 478624 files and directories currently installed.)
Preparing to replace initramfs-tools-bin 0.99ubuntu13.4 (using .../initramfs-tools-bin_0.99ubuntu13_amd64.deb) ...
Unpacking replacement initramfs-tools-bin ...
Setting up initramfs-tools-bin (0.99ubuntu13) ...
dpkg: dependency problems prevent configuration of initramfs-tools:
 initramfs-tools depends on initramfs-tools-bin (>= 0.99ubuntu13.3); however:
  Version of initramfs-tools-bin on system is 0.99ubuntu13.
dpkg: error processing initramfs-tools (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                         Errors were encountered while processing:
 initramfs-tools
E: Sub-process /usr/bin/dpkg returned an error code (1)

다음으로 Giles의 제안을 시도했습니다.

sudo dpkg --configure -a --force-depends
sudo apt-get install -f
sudo apt-get dist-upgrade

조금 혼란 스러워요. 의 출력을 게시하시기 바랍니다apt-cache policy initramfs-tools-bin initramfs-tools
질 'SO-정지 존재 악마'

@Gilles-시청 해 주셔서 감사합니다. 이 정보로 질문을 업데이트했습니다.
MountainX

버전을 수동으로 지정하십시오.apt-get install initramfs-tools=0.99ubuntu13.4
jordanm

흠, 이것은 initramfs-tools패키지 의 종속성 이나 dpkg가 패키지를 관리하는 방식에서 버그처럼 보입니다 . 새 시스템 initramfs-tools-bin이 설치된 것으로 표시되어 있지만 이전 시스템 initramfs-tools이 여전히 존재 하는 상태에서는 시스템이이 상태에 있지 않아야합니다 . 합니까의 dpkg --configure -a --force-depends도움?
Gilles 'SO- 악마 그만해'

sudo apt-get check과 의 출력은 무엇입니까 dpkg --audit?
Braiam

답변:


26

귀하의 시스템은 내가 일어나지 말아야 할 initramfs-tools-bin상태에 있습니다. 설치된 상태 에는 새로운 버전의 종속성 이 있지만 initramfs-tools반 설치된 상태 에는 오래된 버전의 종속성 이 있습니다. 문제가 APT가 시스템을 복구 할 수없는 상태로 만들고, dpkg가 시스템을 복구 할 수없는 상태로 만들 수 있는지, 패키지 관리자가 종속성 조합을 사용했는지 여부는 확실하지 않습니다. 지원되지 않거나 제한된 이해 가이 경우를 다루지 않습니다.

dpkg직접 사용해보십시오 :

dpkg --configure -a

이것이 여전히 종속성에 대해 불평하는 경우 시도하십시오

dpkg --configure -a --force-depends

이것이 작동하면 dpkg 데이터베이스가 일관된 상태입니다. APT를 양호한 상태 (파손 된 종속성이 필요 없음)로 가져와야합니다.

apt-get -f install

그런 다음 정상적인 업그레이드를 재개 할 수 있습니다.


당신의 정화가되면 /boot패키지에 있던 오래된 커널을 삭제하고, 당신은 더 이상 커널 패키지를 제거 할 수 없습니다. 파일을 다시 만들어야합니다. 패키지를 제거하고 일부 파일을 수동으로 제거한 touch `cat /var/lib/dpkg/info/linux-image-1.2.3-foo`경우 빈 파일 ( )을 만들 수 있습니다 linux-image-1.2.3-foo.


1
정말 감사합니다 !!! --force-depends를 사용하는 dpkg는 차이를 만들고 고장난 패키지를 수정하면 문제를 해결했습니다
omuthu

2
update-initramfs: Generating /boot/initrd.img-3.8.0-32-lowlatency

gzip: stdout: No space left on device

즉, 일부 커널을 제거해야합니다. 오래되고 사용되지 않은 커널이 가장 좋은 대안입니다.

sudo dpkg --purge linux-generic-someold-version

이전 파일을 수동으로 삭제 했으며 이제 일부 공간이 비어 있습니다.

아니!

어떤 것도 수동으로 제거해서는 안됩니다. 이제까지. 에서 만 물건 /home/tmp그 그렇지 않으면, 쉽게 복구 캔 나 손으로 접촉 할 수있는 도구를 사용할 수 있습니다. 그것이 바로 DPKG / APT가 귀하의 서비스에 참여하는 시점입니다. 무언가를 제거 해야하는 경우 apt / dpkg를 대신 사용하고 마지막 대안으로 수작업으로 물건을 남겨 두십시오. 나는 당신의 현재 문제가 이것 때문이라고 가정합니다.


종속성 문제를 해결하려면 다운 그레이드 한 다음 업그레이드하십시오.

sudo apt-get update
sudo apt-get -f install initramfs-tools=0.99ubuntu13 initramfs-tools-bin=0.99ubuntu13
sudo apt-get upgrade

이 시점에서 dpkg / apt에게 이전 커널도 제거하도록 지시해야합니다.


나는 당신의 제안을 시도했습니다. 또한 실패합니다. 내 질문을 출력으로 업데이트했습니다.
MountainX
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.