Impossible d'installer les mises à jour via le gestionnaire de mise à jour / mise à niveau apt-get

12

J'utilise Ubuntu 12.04 depuis quelques semaines. J'ai récemment essayé de télécharger et d'installer certains fichiers via Update Manager. Il a localisé quelques fichiers, les a téléchargés, mais n'a pas réussi à les installer. Il a donné l'erreur:

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

J'ai essayé d'utiliser apt-get upgrademais une erreur similaire s'est produite:

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)

Toute aide serait grandement appréciée. Merci d'avance.

Modifier: voici quelques informations supplémentaires qui peuvent être utiles. Mon problème d'origine était que l'Ubuntu Software Center ne s'ouvrait pas. J'ai constaté que le gestionnaire de mise à jour et le gestionnaire de packages Synaptic n'ont pas pu également s'ouvrir. Ils ont tous donné une erreur le long des lignes de:

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

Après beaucoup de recherches sur Google, j'ai semblé résoudre ce problème car les gestionnaires de paquets s'ouvraient à nouveau. Lorsque j'ai ensuite essayé de télécharger et d'installer des mises à jour à partir du gestionnaire de mise à jour, j'ai eu l'erreur au début de ce message.

user64654
la source
Quels fichiers avez-vous téléchargés? D'où? Qu'est-ce que le gestionnaire de mise à jour doit faire avec elle?
mikewhatever
Vous pouvez essayer de désinstaller (et réinstaller ultérieurement) le package dans le message. Si cela échoue, vous pouvez essayer de vider le cache.
John S Gruber
Je suis toujours en train de résoudre ce problème, je n'en ai tout simplement pas encore eu l'occasion. Je vais essayer les instructions données ici: goo.gl/oOKqG quand j'en aurai l'occasion.
user64654
Pourquoi avez - vous choisi d'installer 12.04 et non 14,04? Après tout, vous avez dit que vous l'aviez obtenu il y a quelques semaines, et Trusty était absent depuis environ neuf mois.
John Scott

Réponses:

16

J'ai résolu le problème avec ces instructions .

La solution est donc la suivante:

  1. Allez dans le /var/lib/dpkgrépertoire
  2. Faire une sauvegarde du statusfichier
  3. Modifier le statusfichier
  4. Rechercher le package qui a provoqué l'erreur
  5. Supprimez simplement les lignes de ce paquet (mais laissez toutes les autres lignes qui concernent d'autres paquets même si elles contiennent le paquet cassé dans leurs champs "Remplace" ou "Dépend")

    […]

  6. Enregistrer les modifications dans le statusfichier

  7. Courir: sudo dpkg --configure -a
  8. Forcer la réinstallation des dépendances manquantes (car maintenant, il y en a):

    sudo apt-get -f install
    

    Je pense que si le paquet cassé ne dépend pas d'un autre paquet (peut-être rare), il suffit de réinstaller:

    sudo apt-get install the_package
    
  9. Tout va bien maintenant peut mettre à jour, mettre à niveau ou installer de nouveaux packages!

Il convient de noter que j'avais quelques différences par rapport à la solution donnée. Le fichier d'état n'a pas été facile à modifier (car il est un fichier important et n'a jamais voulu dire à modifier). Toutes les modifications qui y sont apportées doivent être effectuées avec soin et le fichier doit être sauvegardé avant d'apporter des modifications.

Je devais répéter les étapes 4-8 trois fois (chaque fois que l'erreur serait le même avec juste un autre paquet). Enfin, lorsque tous les paquets ont été supprimés, j'ai pu les réinstaller, et il fixe mon problème.

user64654
la source
Comment avez-vous trouvé les packages à l'origine de l'erreur?
Seanny123
@ Seanny123, la tentative antérieure d'installation d'apt-get afficherait probablement l'erreur. Par exemple, dans mon cas, j'ai "lecture de la liste des fichiers du paquet 'manpages-dev': erreur d'entrée / sortie" juste avant le retour de l'invite. Dans le fichier d'état, je recherchais « Paquet: manpages-dev » et supprimé les lignes jusqu'à la prochaine « Paquet: » ligne. Après cela, j'ai dû faire un manuel "apt-get install manpages-dev", puis mon "apt-get dist-upgrade" qui avait échoué auparavant s'est terminé sans erreur. (Merci user64654!)
Peter Hansen
2

Il peut arriver que le disque est corrompu par inodes.

Avec un live CD, exécutez cette commande

sudo fdisk -l

notez le disque et la partition, il peut être /dev/dsb1 ensuite réparé:

sudo fsck -y /dev/sdb1

Redémarrage, et le retour sur le système

sudo apt-get -f install
sudo apt-get update
sudo apt-get upgrade
Guillaume
la source
Je l' ai fait le fsck via sudo shutdown -rF nowet, sans rien de plus, tout allait bien à nouveau.
Klaws