Impossibile installare gli aggiornamenti tramite Update Manager / apt-get upgrade


12

Ho eseguito Ubuntu 12.04 nelle ultime settimane. Di recente ho provato a scaricare e installare alcuni file tramite Update Manager. Individuò alcuni file, li scaricò, ma non riuscì a installarli. Ha dato l'errore:

installArchives() failed: (Reading database ... 
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error

Ho provato a usare apt-get upgradema è stato prodotto un errore simile:

Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages will be upgraded:
  icedtea-6-jre-cacao icedtea-6-jre-jamvm openjdk-6-jre openjdk-6-jre-headless
  openjdk-6-jre-lib
5 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 0 B/34.6 MB of archives.
After this operation, 1,024 B of additional disk space will be used.
Do you want to continue [Y/n]? y
(Reading database ... 80%
dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'libasn1-8-heimdal': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

Qualsiasi aiuto sarebbe molto apprezzato. Grazie in anticipo.

Modifica: ecco alcune informazioni aggiuntive che potrebbero essere utili. Il mio problema originale era che Ubuntu Software Center non si apriva. Ho scoperto che anche Update Manager e Synaptic Package Manager non sono stati aperti. Tutti hanno dato un errore sulla falsariga di:

"installArchives() failed: dpkg: error: reading package info file '/var/lib/dpkg/available': Input/output errorError in function:"

Dopo aver cercato su Google mi è sembrato di risolvere quel problema mentre i gestori dei pacchetti si riaprivano. Quando ho provato a scaricare e installare gli aggiornamenti da Update Manager, ho ricevuto l'errore all'inizio di questo post.


Quali file hai scaricato? Da dove? Cosa c'entra il gestore aggiornamenti?
mikewhatever,

Potresti provare a disinstallare (e successivamente reinstallare) l il pacchetto nel messaggio. In caso contrario, potresti provare a svuotare la cache.
John S Gruber,

Sto ancora lavorando per risolvere questo problema, non ho ancora avuto la possibilità. Proverò le istruzioni fornite qui: goo.gl/oOKqG quando ne avrò la possibilità.
user64654,

Perché hai scelto di installare 12.04 e non 14.04? Dopotutto, hai detto di averlo preso un paio di settimane fa e Trusty è uscito da circa nove mesi.
John Scott,

Risposte:


16

Ho risolto il problema con queste istruzioni .

Quindi la soluzione è la seguente:

  1. Vai nella /var/lib/dpkgdirectory
  2. Fai un backup del statusfile
  3. Modifica il statusfile
  4. Cerca il pacchetto che ha dato l'errore
  5. Basta eliminare le righe da questo pacchetto (ma lasciare tutte le altre righe che riguardano altri pacchetti anche se contengono il pacchetto interrotto nei loro campi "Sostituisci" o "Dipende")

    [...]

  6. Salva le modifiche nel statusfile

  7. Correre: sudo dpkg --configure -a
  8. Forzare la reinstallazione delle dipendenze mancanti (perché ora ce ne sono alcune):

    sudo apt-get -f install
    

    Penso che se il pacchetto rotto non dipende da nessun altro pacchetto (potrebbe essere raro), basta reinstallarlo:

    sudo apt-get install the_package
    
  9. Ora tutto è in grado di aggiornare, aggiornare o installare nuovi pacchetti!

Va notato che ho avuto alcune differenze con la soluzione fornita lì. Il file di stato non è stato facile da modificare (in quanto è un file importante e non è mai stato pensato per essere modificato). Tutte le modifiche apportate devono essere eseguite con cura e il backup del file deve essere eseguito prima di apportare eventuali modifiche.

Ho dovuto ripetere i passaggi 4-8 tre volte (ogni volta che l'errore sarebbe lo stesso solo con un pacchetto diverso). Alla fine, quando tutti i pacchetti sono stati rimossi, sono stato in grado di reinstallarli e il problema è stato risolto.


Come hai trovato quali pacchetti hanno causato l'errore?
Seanny123,

@ Seanny123 il precedente tentativo di apt-get install avrebbe presumibilmente mostrato l'errore. Ad esempio, nel mio caso ho "leggere l'elenco dei file per il pacchetto 'manpages-dev': errore di input / output" appena prima che il prompt restituisse. Nel file di stato, ho cercato "Pacchetto: manpages-dev" e ho eliminato le righe fino alla riga "Pacchetto:" successiva. Dopo di che ho dovuto fare un manuale "apt-get install manpages-dev" e poi il mio "apt-get dist-upgrade" precedentemente fallito è stato completato senza errori. (Grazie user64654!)
Peter Hansen il

2

Può succedere che il disco sia danneggiato con gli inode.

Con un CD live, eseguire questo comando

sudo fdisk -l

notare il disco e la partizione, potrebbe essere /dev/dsb1 quindi ripararlo:

sudo fsck -y /dev/sdb1

Riavvia e ritorna sul sistema

sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade

Ho fatto il fsck via sudo shutdown -rF nowe, senza altro, tutto è andato di nuovo bene.
Klaws
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.