«Списки пакетов или файл состояния не могут быть проанализированы или открыты» [дубликат]

Вы можете получить гораздо более подробную информацию, чем встроенная в bash time (которую упоминает Роберт Гэмбл), используя time (1) . Обычно это /usr/bin/time.

Примечание редактора: чтобы убедиться, что вы вызываете внешнюю утилиту time, а не ключевое слово time вашей оболочки , используйте ее как /usr/bin/time.
time - это POSIX-мандатная утилита , но единственная опция, которую требуется поддерживать, это -p.
Определенные платформы реализуют определенные нестандартные расширения: -v работает с утилитой GNU time, как показано ниже (вопрос помечен ); реализация BSD / macOS использует -l для получения аналогичных результатов - см. man 1 time. sup>

Пример подробного вывода:


$ /usr/bin/time -v sleep 1
       Command being timed: "sleep 1"
       User time (seconds): 0.00
       System time (seconds): 0.00
       Percent of CPU this job got: 1%
       Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.05
       Average shared text size (kbytes): 0
       Average unshared data size (kbytes): 0
       Average stack size (kbytes): 0
       Average total size (kbytes): 0
       Maximum resident set size (kbytes): 0
       Average resident set size (kbytes): 0
       Major (requiring I/O) page faults: 0
       Minor (reclaiming a frame) page faults: 210
       Voluntary context switches: 2
       Involuntary context switches: 1
       Swaps: 0
       File system inputs: 0
       File system outputs: 0
       Socket messages sent: 0
       Socket messages received: 0
       Signals delivered: 0
       Page size (bytes): 4096
       Exit status: 0

38
задан 06.05.2020, 20:35

4 ответа

Попробуйте использовать более старый файл состояния,

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
36
ответ дан 06.05.2020, 20:35
  • 1
    В моем случае это не работало. Я удалил /var/lib/dpkg/status и просто создал пустой с touch /var/lib/dpkg/status, и это решило проблему. – sakura 06.05.2020, 20:36
  • 2
    Я должен был сделать следующее для решения этого: комната sudo/var/lib/apt/lists /* - VF sudo склонный - получает обновление – checketts 06.05.2020, 20:36
  • 3
    спасибо 2x Avinash:).. это действительно сохраняет меня.. Все время по нему был просто файл состояния, моя проблема? – chrylis 06.05.2020, 20:37
  • 4
    попытка та в рамках резервного каталога /var/backups/dpkg.status.0 – checketts 06.05.2020, 20:37
  • 5
    Проблема сохраняется даже после выполнения шагов, которые Вы сказали, может быть мое старое состоянием, также повреждено. – peterh 06.05.2020, 20:37

Это старый вопрос, но только для архивных целей ... в моем случае было решено следующее:

sudo rm /var/lib/apt/lists/* -vf
sudo apt-get clean
sudo apt-get update
31
ответ дан 06.05.2020, 20:36
  • 1
    Это также работало на меня, также см. , Как делают я фиксирую " проблема с MergeList" или " файл состояния не мог быть parsed" ошибка при попытке сделать обновление? для получения дополнительной информации & инструкции. – Muzu 06.05.2020, 20:36
  • 2
    да удаляющий все способное - получают файлы, и запуск полностью нового был также, что работало на меня, он занял время, но работал! tanx – sakura 06.05.2020, 20:37
  • 3
    Я просто должен был сделать последние два шага этого. – Manuel 06.05.2020, 20:37
  • 4
    Это работало на меня после того, как 3 других опции - копируют старое состояние / резервное состояние копии / удаляет и создает пустое состояние - didn' t работа. Я также понял, как проблема произошла. Я попытался изменить серверы во время своего последнего ручного обновления (в июне 2016), в то время как проблема была на самом деле с моим ISP, который подвесил операцию несколько раз. Папка списков имела (возможно поврежденный) списки с различных серверов Ubuntu, которые были очищены и воссоздали после этой операции. – Heri 06.05.2020, 20:38

Я столкнулся с подобной ошибкой:

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 бежал без проблем.

На этот пост поступает кредит.

7
ответ дан 06.05.2020, 20:37

У меня была похожая ошибка, но проблема была не в dpkg.status, а в удачном листинге.

Чтобы проверить вероятную причину, запустите strace -efile apt install something. Затем найдите последние файлы, к которым обращались до того, как отобразится сообщение об ошибке:

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 из фоссологии) оказался длиной 0 байт. Удаление этого репозитория позволило apt возобновить нормальную работу

0
ответ дан 06.05.2020, 20:38

Теги

Похожие вопросы