dpkg: problemi di dipendenza impediscono la configurazione di initramfs-tools


10

Ho avviato un aggiornamento del mio sistema Kubuntu 12.04 con questo comando, come al solito:

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

Sono tornato più tardi e non era riuscito:

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)

ecco il problema: $ df -h output:

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

file più vecchi cancellati manualmente e ora un po 'di spazio è libero

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

Ho corso questo il prossimo:

sudo apt-get autoremove

Il prossimo:

sudo apt-get -f install produzione:

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
quanto sopra fallisce

dpkg -l initramfs-tools produzione:

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

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)

Ecco l'output di 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

Come suggerito di seguito, ecco i miei prossimi passi:

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

Successivamente ho provato il suggerimento di Giles:

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

Sono un po 'confuso. Pubblica il risultato diapt-cache policy initramfs-tools-bin initramfs-tools
Gilles 'SO- smetti di essere malvagio' il

@Gilles - grazie per averlo guardato. Ho aggiornato la domanda con queste informazioni.
MountainX

Prova a specificare manualmente la versione:apt-get install initramfs-tools=0.99ubuntu13.4
jordanm

Hmmm, questo sembra un bug nelle dipendenze del initramfs-toolspacchetto o nel modo in cui dpkg le gestisce. Penso che il tuo sistema non dovrebbe entrare in questo stato in cui il nuovo initramfs-tools-binè contrassegnato come installato ma il vecchio initramfs-toolsè ancora lì. Does dpkg --configure -a --force-dependsaiuto?
Gilles 'SO- smetti di essere malvagio' il

Qual è l'output di sudo apt-get checke dpkg --audit?
Braiam,

Risposte:


26

Il tuo sistema è in uno stato che penso non dovrebbe accadere: hai la nuova versione della dipendenza initramfs-tools-binnello stato installato, ma la vecchia versione della dipendenza initramfs-toolsin uno stato semi-installato. Non sono sicuro che il problema sia che APT stia consentendo al sistema di entrare in uno stato in cui non può essere ripristinato, dpkg sta permettendo al sistema di entrare in uno stato in cui non può essere ripristinato, il manutentore del pacchetto ha utilizzato una combinazione di dipendenze che non è supportato o la mia comprensione limitata non copre questo caso.

Prova a utilizzare dpkgdirettamente:

dpkg --configure -a

Se questo si lamenta ancora delle dipendenze, prova

dpkg --configure -a --force-depends

Se funziona, il database dpkg è in uno stato coerente. È necessario ottenere APT in buono stato (che non richiede dipendenze interrotte):

apt-get -f install

Dopodiché puoi riprendere il normale aggiornamento.


Se la tua eliminazione di /bootstava eliminando i vecchi kernel che erano nei pacchetti, non sarai più in grado di rimuovere i pacchetti del kernel. Dovrai ricreare i file. Puoi creare file vuoti ( touch `cat /var/lib/dpkg/info/linux-image-1.2.3-foo`) se rimuovi il linux-image-1.2.3-foopacchetto e hai rimosso manualmente alcuni dei suoi file.


1
Grazie mille !!! dpkg con --force-depend fa la differenza e poi risolvere il pacchetto rotto ha fatto il trucco
omuthu

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

gzip: stdout: No space left on device

Ciò significa che è necessario rimuovere alcuni kernel. I kernel vecchi e inutilizzati sono la migliore alternativa.

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

file più vecchi cancellati manualmente e ora un po 'di spazio è libero

NO!

Non rimuovere mai nulla manualmente. Mai. Solo le cose da /homee /tmpche possono essere facilmente recuperabili possono essere toccate a mano, altrimenti utilizzare gli strumenti. Questo è il punto di avere DPKG / APT al tuo servizio. Se devi rimuovere qualcosa usa apt / dpkg invece e lascia le cose fatte a mano come ultima alternativa. Presumo che il tuo problema attuale sia dovuto a questo.


Per risolvere il problema di dipendenza, è possibile eseguire il downgrade, quindi eseguire l'aggiornamento:

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

A questo punto avresti dovuto dire a dpkg / apt di rimuovere anche i vecchi kernel.


Ho provato il tuo suggerimento. Inoltre fallisce. Ho aggiornato la mia domanda con l'output.
MountainX,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.