Каждый раз, когда я sudo apt-get update
он всегда не завершен и в конце будет сказано
E: Read error - read (5: Input/output error)
E: The package lists or status file could not be parsed or opened.
То же самое происходит, когда я пытаюсь что-то установить и выполняю sudo apt-get install
Что мне делать? Я допускаю, что на моем диске есть битые сектора, может это быть причиной? Могу я еще что-нибудь сделать?
Попробуйте использовать более старый статусный файл,
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
Это старый вопрос, но только для архивных целей ... В моем случае эта проблема была решена следующим образом:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get clean
sudo apt-get update
Я столкнулся с аналогичной ошибкой:
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.
Я последовал аналогичным предложениям, чтобы скопировать status-old
.
$ head /var/lib/dpkg/status
$ head /var/lib/dpkg/status-old
По какой-то причине все мои файлы состояния были пустыми. К счастью, я обнаружил, что есть резервные копии этих файлов:
$ 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
Я проверил последнюю резервную копию ...
$ head /var/backups/dpkg.status.0
... но она все еще была пустой. Так что я разархивировал более старую ...
$ gunzip /var/backups/dpkg.status.1.gz
$ head /var/backups/dpkg.status.1
На этот раз был контент. Итак, я скопировал его ...
$ cp /var/backups/dpkg.status.1 /var/lib/dpkg/status
Затем apt-get update
запустился без проблем.
У меня была аналогичная ошибка, но проблема была не в dpkg.status
, а в подходящем листинге.
Чтобы проверить вероятную причину, запустите ] strace -efile apt установить что-нибудь
. Затем найдите последние файлы, к которым был осуществлен доступ, прежде чем появится сообщение об ошибке:
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 +++
В моем случае последний файл (файл Release
от fossology) оказался длиной 0 байт. Удаление этого репозитория позволило apt вернуться к нормальной работе