"Les listes de paquets ou le fichier d'état n'ont pas pu être analysés ou ouverts" [dupliquer]

34

Chaque fois que je sudo apt-get update ce n'est toujours pas complet et finira par dire

E: Read error - read (5: Input/output error)
E: The package lists or status file could not be parsed or opened.

Même chose quand j'essaie d'installer quelque chose et que je fais sudo apt-get install <some app>

Que dois-je faire? J'avoue que mon disque a de mauvais secteurs, est-ce que ce pourrait être la raison? Y a-t-il autre chose que je peux faire?

    
posée Teody C. Seguin 24.01.2014 - 13:25
la source

4 réponses

31

Essayez d'utiliser un fichier de statut plus ancien,

sudo mv /var/lib/dpkg/status /var/lib/dpkg/status.bad
sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status
sudo apt-get update
    
réponse donnée Avinash Raj 24.01.2014 - 13:43
la source
21

C'est une vieille question, mais juste pour l'archivage ... voici ce qui résout ce problème dans mon cas:

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get clean
sudo apt-get update
    
réponse donnée leticia 22.04.2016 - 17:45
la source
6

Je rencontrais une erreur similaire:

Reading package lists... Error!
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/dpkg/status
E: The package lists or status file could not be parsed or opened.

J'ai suivi des suggestions similaires pour copier status-old .

$ head /var/lib/dpkg/status
$ head /var/lib/dpkg/status-old

Tous mes fichiers d’état étaient vides pour une raison quelconque. Heureusement, j'ai trouvé des sauvegardes de ces fichiers:

$ ls -l /var/backups/dpkg.status.*
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.0
-rw-r--r-- 1 root root 444620 Nov 15 06:33 /var/backups/dpkg.status.1.gz
-rw-r--r-- 1 root root 128168 Sep 20  2013 /var/backups/dpkg.status.2.gz
-rw-r--r-- 1 root root 112545 Sep 16  2013 /var/backups/dpkg.status.3.gz
-rw-r--r-- 1 root root 107767 Sep 14  2013 /var/backups/dpkg.status.4.gz
-rw-r--r-- 1 root root 107766 Sep 11  2013 /var/backups/dpkg.status.5.gz
-rw-r--r-- 1 root root  94583 Sep 11  2013 /var/backups/dpkg.status.6.gz

J'ai vérifié la dernière sauvegarde ...

$ head /var/backups/dpkg.status.0

... mais c'était toujours vide. Alors j'ai décompressé un plus vieux ...

$ gunzip /var/backups/dpkg.status.1.gz
$ head /var/backups/dpkg.status.1

Cette fois, il y avait du contenu. Donc je l'ai copié ...

$ cp /var/backups/dpkg.status.1 /var/lib/dpkg/status

Alors apt-get update a fonctionné sans problème.

Le crédit va à cet article.

    
réponse donnée Andrew 12.04.2014 - 00:37
la source
0

J'ai eu une erreur similaire, mais le problème n'était pas dans dpkg.status , mais dans une liste appropriée.

Pour vérifier la cause probable, exécutez strace -efile apt install something . Recherchez ensuite les derniers fichiers accessibles avant que le message d'erreur ne s'affiche:

stat("/var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_xenial_main_i18n_Translation-en%5fUS.uncompressed", 0x7fffd2f39d00) = -1 ENOENT (No such file or directory)
stat("/var/lib/apt/lists/linux.dropbox.com_ubuntu_dists_xenial_main_i18n_Translation-en%5fUS", 0x7fffd2f39e50) = -1 ENOENT (No such file or directory)
stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_InRelease", 0x7fffd2f39d10) = -1 ENOENT (No such file or directory)
stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_InRelease", 0x7fffd2f396d0) = -1 ENOENT (No such file or directory)
stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
stat("/tmp", {st_mode=S_IFDIR|S_ISVTX|0777, st_size=57344, ...}) = 0
open("/tmp/fileutl.message.XlglFW", O_RDWR|O_CREAT|O_EXCL, 0600) = 5
unlink("/tmp/fileutl.message.XlglFW")   = 0
open("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", O_RDONLY) = 6
open("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", O_RDONLY) = 5
stat("/var/lib/apt/lists/www.fossology.org_releases_2.6.2_Ubuntu_dists_14.04_Release", {st_mode=S_IFREG|0644, st_size=0, ...}) = 0
Reading package lists... Done
E: The package lists or status file could not be parsed or opened.
+++ exited with 100 +++

Dans mon cas, le dernier fichier (un fichier Release de fossologie) était long de 0 octet. La suppression de ce référentiel permet de reprendre une fonctionnalité normale

    
réponse donnée David Fraser 26.10.2016 - 17:01
la source

Lire d'autres questions sur les étiquettes