3 votes

dpkg ne se met pas à jour - erreur d'entrée/sortie dans l'indicateur-session

J'ai eu une erreur en essayant de mettre à jour mon système. Actuellement, je ne peux pas installer/supprimer ou mettre à jour quoi que ce soit avec apt-get...

Voici l'erreur que j'obtiens en exécutant apt-get update

dpkg: unrecoverable fatal error, aborting:
 reading files list for package 'indicator-session': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)

4voto

drumusician Points 71

Ok, j'ai regardé un peu plus et j'ai trouvé une solution : Elle est dans ce post : Impossible d'installer une mise à jour via le gestionnaire de mise à jour/apt-get upgrade

Il y a un lien dans la réponse à cette page : http://ubuntuforums.org/archive/index.php/t-1232143.html

Il s'agit de modifier le fichier /var/lib/dpkg/status et de supprimer tout ce qui concerne le paquet cassé.

Mon système est à nouveau opérationnel !

2voto

Benedikt Köppel Points 412

Voici la sortie que j'ai obtenue de apt-get :

dpkg: warning: files list file for package `libecryptfs0' missing, assuming package has no files currently installed.
dpkg: warning: files list file for package `libplexus-containers1.5-java' missing, assuming package has no files currently installed.
dpkg: warning: files list file for package `apport' missing, assuming package has no files currently installed.

Et voilà comment je l'ai réparé :

  1. Sauvegarde du fichier d'état de dpkg :

    cp /var/lib/dpkg/status{,.backup}
  2. Modifier le /var/lib/dpkg/status et supprimez les sections pour les paquets que apt-get des avertissements imprimés sur. Assurez-vous que vous supprimez toute la section concernant ces paquets, c'est-à-dire celle qui commence par la ligne Package: libecryptfs0 jusqu'à la première ligne vierge.

    Vous pouvez également utiliser sed pour faire le travail à votre place :

    sed -i.backup -e '/^Package: \(libecryptfs0\|libplexus-containers1\.5-java\|apport\)$/,/^$/d' /var/lib/dpkg/status

    Cette commande supprime toutes les sections comprises entre et incluant les lignes avec Package: <PACKAGE_NAME> et la ligne vide suivante. Vous pouvez placer n'importe quel nom de paquet valide entre les parenthèses \(…\) et les délimiter avec \| et échapper aux points ( . \. ). L'option -i.backup édite le fichier en place et crée un fichier de sauvegarde suffixé par .backup (vous pouvez donc sauter l'étape 1 si vous utilisez la variante) au lieu d'écrire le résultat dans stdout.

  3. Exécuter sudo apt-get -f install pour configurer les paquets non configurés et (ré)installer les paquets manquants. Les paquets sont manquants parce que nous les avons supprimés de la base de données de la status Datei.

¹ Voir Comment obtenir les autorisations nécessaires pour modifier les fichiers de configuration du système ? pour savoir comment le faire.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X