dpkg: des problèmes de dépendance empêchent la configuration des outils initramfs

10

J'ai commencé une mise à niveau de mon système Kubuntu 12.04 avec cette commande, comme d'habitude:

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

Je suis revenu plus tard et il avait échoué:

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)

voici le problème: $ df -h sortie:

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

supprimez manuellement les fichiers plus anciens et maintenant de l'espace est libre

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

Je l'ai couru ensuite:

sudo apt-get autoremove

Prochain:

sudo apt-get -f install production:

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
ce qui précède échoue

dpkg -l initramfs-tools production:

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 production:

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)

Voici la sortie de 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

Comme suggéré ci-dessous, voici mes prochaines étapes:

$ 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)

Ensuite, j'ai essayé la suggestion de Giles:

sudo dpkg --configure -a --force-depends
sudo apt-get install -f
sudo apt-get dist-upgrade
MountainX
la source
Je suis un peu confus. Veuillez poster la sortie deapt-cache policy initramfs-tools-bin initramfs-tools
Gilles 'SO- arrête d'être méchant'
@Gilles - merci de l'avoir regardé. J'ai mis à jour la question avec cette information.
MountainX
Essayez de spécifier manuellement la version:apt-get install initramfs-tools=0.99ubuntu13.4
jordanm
Hmmm, cela ressemble à un bogue dans les dépendances du initramfs-toolspaquet ou dans la façon dont dpkg les gère. Je pense que votre système n'est pas censé entrer dans cet état où le nouveau initramfs-tools-binest marqué comme installé mais l'ancien initramfs-toolsest toujours là. Ça dpkg --configure -a --force-dependsaide?
Gilles 'SO- arrête d'être méchant'
Quelle est la sortie de sudo apt-get checket dpkg --audit?
Braiam

Réponses:

26

Votre système est dans un état qui, je pense, ne devrait pas se produire: vous avez la nouvelle version de la dépendance initramfs-tools-binà l'état installé, mais l'ancienne version de la dépendance initramfs-toolsà l'état semi-installé. Je ne sais pas si le problème est qu'APT laisse le système entrer dans un état où il ne peut pas récupérer, dpkg laisse le système entrer dans un état où il ne peut pas récupérer, le mainteneur du paquet a utilisé une combinaison de dépendances qui n'est pas pris en charge, ou ma compréhension limitée ne couvre pas ce cas.

Essayez d'utiliser dpkgdirectement:

dpkg --configure -a

Si cela continue de vous plaindre des dépendances, essayez

dpkg --configure -a --force-depends

Si cela fonctionne, vous avez la base de données dpkg dans un état cohérent. Vous devez obtenir APT dans un bon état (ce qui ne nécessite aucune dépendance cassée):

apt-get -f install

Après cela, vous pouvez reprendre la mise à niveau normale.


Si votre purge /bootsupprimait d'anciens noyaux qui se trouvaient dans des packages, vous ne pourrez plus supprimer les packages du noyau. Vous devrez recréer les fichiers. Vous pouvez créer des fichiers vides ( touch `cat /var/lib/dpkg/info/linux-image-1.2.3-foo`) si vous supprimez le linux-image-1.2.3-foopackage et que vous avez supprimé manuellement certains de ses fichiers.

Gilles 'SO- arrête d'être méchant'
la source
1
Merci beaucoup !!! dpkg avec --force-depend fait la différence, puis la réparation du paquet cassé a fait l'affaire
omuthu
2
update-initramfs: Generating /boot/initrd.img-3.8.0-32-lowlatency

gzip: stdout: No space left on device

Cela signifie que vous devez supprimer certains noyaux. Les noyaux anciens et inutilisés sont la meilleure alternative.

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

supprimez manuellement les fichiers plus anciens et maintenant de l'espace est libre

NON!

Vous ne devez jamais rien supprimer manuellement. Déjà. Seulement des choses à partir /homeet /tmpqui peut être facilement récupérable peut me touché à la main, sinon utiliser les outils. C'est le point d'avoir DPKG / APT à votre service. Si vous devez supprimer quelque chose, utilisez plutôt apt / dpkg et laissez les choses à la main comme dernière alternative. Je suppose que votre problème actuel est dû à cela.


Pour résoudre le problème de dépendance, vous pouvez rétrograder, puis mettre à niveau:

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

À ce stade, vous auriez dû dire à dpkg / apt de supprimer également les anciens noyaux.

Braiam
la source
J'ai essayé votre suggestion. Il échoue également. J'ai mis à jour ma question avec la sortie.
MountainX