Я столкнулся с проблемой в диспетчере синаптических пакетов и hellip, я не могу установить никаких обновлений и hellip; эта ошибка возникает [dубликат]

Компьютер дал мне этот вывод в окне:

E: Encountered a section with no Package: header E: Problem with MergeList /var/lib/apt/lists/archive.ubuntu.com_ubuntu_dists_natty_main_binary-i386_Packages E: The package lists or status file could not be parsed or opened.

Как я могу это исправить?

344
задан 18 November 2015 в 04:54

19 ответов

Я также видел, что эта проблема возникает, когда у вас слишком много источников в ваших репозиториях.

Попробуйте решение, размещенное выше и / или, возможно, это, что иногда рекомендуется на панели запуска:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

Сообщите нам, как вы это делаете.

471
ответ дан 3 August 2018 в 17:29

Я также видел, что эта проблема возникает, когда у вас слишком много источников в ваших репозиториях.

Попробуйте решение, размещенное выше и / или, возможно, это, что иногда рекомендуется на панели запуска:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update

Сообщите нам, как вы это делаете.

471
ответ дан 8 August 2018 в 23:47

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

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

Кредит отправляется на этот пост.

4
ответ дан 18 July 2018 в 00:06

Следующие шаги 2-5 в «Процедуре устранения неполадок диспетчера пакетов» обычно решают эту проблему.

Для Процедуры устранения неполадок диспетчера пакетов отключите все ваши PPA. Вы можете снять все из них в Software Sources так же, как вы снимите отметку с одного; см. Как отключить определенный PPA ?. Вы можете повторно включить их позже.

Для Как отключить конкретный PPA? , закройте все открытые программы, которые вы можете. Вероятно, безопасно держать ваш веб-браузер открытым, чтобы у вас были ваши инструкции перед вами. Но особенно важно убедиться, что все менеджеры пакетов все . Это включает в себя Центр программного обеспечения, Обновление программного обеспечения (Update Manager в более старых версиях Ubuntu), Synaptic и Gdebi. Он также включает утилиты управления пакетами командной строки, такие как apt-get, dpkg и aptitude.

Обратите внимание, что если другие пользователи одновременно вошли в систему, они должны выйти из системы, если это возможно.

Для шага 4 откройте окно терминала. Один из способов сделать это, независимо от того, какую рабочую среду вы используете, - нажать Ctrl + Alt + T.

Для шага 4 для запустите эти команды в окне терминала:

ubuntu-support-status sudo grep -R proxy /etc/apt/* grep proxy /etc/environment echo $http_proxy echo $ftp_proxy grep proxy /etc/bash.bashrc grep proxy ~/.bashrc cat /etc/apt/apt.conf sudo fuser -vvv /var/lib/dpkg/lock sudo fuser -vvv /var/cache/apt/archives/lock cat /etc/lsb-release uname -a sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-bad sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status || sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/status sudo mv /var/lib/dpkg/available /var/lib/dpkg/available-bad sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available sudo rm -rf /var/lib/dpkg/updates/* sudo rm -rf /var/lib/apt/lists sudo rm /var/cache/apt/*.bin sudo mkdir /var/lib/apt/lists sudo mkdir /var/lib/apt/lists/partial LANG=C;sudo apt-get clean LANG=C;sudo apt-get autoclean LANG=C;sudo apt-get --purge autoremove LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000 sudo dpkg --configure -a sudo dpkg --clear-avail LANG=C;sudo apt-get -f install LANG=C;sudo apt-get --fix-missing install LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; cat -n "$1"' _ '{}' \;

Я скопировал это verbatim из PackageManagementTroubleshoootingProcedure 2 марта 2014 года. Эти команды развивались в прошлом, и рекомендуемые команды в этой статье могут быть изменены или расширены снова в будущем. Поэтому вы можете работать с шага 5 там. (Эта статья, созданная / отредактированная «Сторонниками вики документации Ubuntu», особенно Марк Рикенберг, - лицензирована CC-BY-SA 3.0, которая позволяет включить здесь с надлежащей атрибуцией.)

Некоторые из эти команды пытаются исправить проблему (а также могут отображать диагностическую информацию); другие отображают ценную информацию о проблеме, которую вы можете включить в свой вопрос или иным образом предоставлять кому-то, кто помогает вам. (Или, в зависимости от ваших навыков, может позволить другим пользователям диагностировать и решать проблемы.)

Часто это исправляет, но когда это не так, часто дает достаточно информации для исправления это.

Вам не нужно вручную вводить эти команды; вы можете их скопировать и вставить. Однако я рекомендую вставлять и запускать каждый отдельно. Это дает более четкое представление о том, из каких команд.

16
ответ дан 18 July 2018 в 00:06

Вы отрезали, когда вы отредактировали /var/lib/dpkg/status. Восстановите его из резервной копии, сделанной перед ее редактированием. Конечно, вы сделали резервную копию, верно?

Поскольку вы не сделали резервную копию, отредактируйте ее снова, осторожно. Старайтесь не наносить больше урона.

Вы можете использовать /var/lib/dpkg/status.old в качестве контрольной точки. Это резервная копия файла status до последнего времени dpkg. Запустите

diff /var/lib/dpkg/status.old /var/lib/dpkg/status

, чтобы увидеть различия. Отмените изменения, которые вы сделали вручную, и сохраните изменения, внесенные в последний прогон dpkg.

Если вам действительно не удается восстановить файл, скопируйте /var/lib/dpkg/status.old поверх /var/lib/dpkg/status , Вы получите хорошо сформированную, но устаревшую базу данных пакетов.

Вам не нужно редактировать /var/lib/dpkg/status при нормальной работе. Даже если все идет серьезно, /var/lib/dpkg/status не является чем-то, что требует вмешательства администратора. Независимо от ваших проблем с crossplatformui, есть, вероятно, лучший способ их решения. Единственный раз, когда мне нужно было отредактировать /var/lib/dpkg/status, было то, что файл восходящего Packages был сломан.

23
ответ дан 18 July 2018 в 00:06

Откройте терминал и выполните следующие команды по одному за раз:

sudo rm /var/lib/apt/lists/* -vf sudo apt-get update

См. также:

https://help.ubuntu.com/community/PackageManagerTroubleshootingПроцедура [ ! d2]
80
ответ дан 18 July 2018 в 00:06

Я также видел, что эта проблема возникает, когда у вас слишком много источников в ваших репозиториях.

Попробуйте решение, опубликованное выше и / или, возможно, это, что иногда рекомендуется на панели запуска:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old sudo mkdir -p /var/lib/apt/lists/partial sudo apt-get update

Сообщите нам, как вы это делаете.

11
ответ дан 18 July 2018 в 00:06

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

Перейти к Software & amp; обновления -> Ubuntu Software -> Загрузить с -> Другое-> Выбрать лучший сервер Подождите испытания. В конце тестов будет выбран лучший сервер, не обязательно ближайший, а не основной сервер или сервер для вашей локали. Теперь перезагрузите данные Repo, он завершится правильно.
3
ответ дан 18 July 2018 в 00:06

Я сделал

sudo apt-get clean sudo apt-get update

, и он сработал.

18
ответ дан 18 July 2018 в 00:06

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

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

Кредит отправляется на этот пост.

4
ответ дан 24 July 2018 в 17:09

Следующие шаги 2-5 в «Процедуре устранения неполадок диспетчера пакетов» обычно решают эту проблему.

Для Процедуры устранения неполадок диспетчера пакетов отключите все ваши PPA. Вы можете снять все из них в Software Sources так же, как вы снимите отметку с одного; см. Как отключить определенный PPA ?. Вы можете повторно включить их позже.

Для Как отключить конкретный PPA? , закройте все открытые программы, которые вы можете. Вероятно, безопасно держать ваш веб-браузер открытым, чтобы у вас были ваши инструкции перед вами. Но особенно важно убедиться, что все менеджеры пакетов все . Это включает в себя Центр программного обеспечения, Обновление программного обеспечения (Update Manager в более старых версиях Ubuntu), Synaptic и Gdebi. Он также включает утилиты управления пакетами командной строки, такие как apt-get, dpkg и aptitude.

Обратите внимание, что если другие пользователи одновременно вошли в систему, они должны выйти из системы, если это возможно.

Для шага 4 откройте окно терминала. Один из способов сделать это, независимо от того, какую рабочую среду вы используете, - нажать Ctrl + Alt + T.

Для шага 4 для запустите эти команды в окне терминала:

ubuntu-support-status sudo grep -R proxy /etc/apt/* grep proxy /etc/environment echo $http_proxy echo $ftp_proxy grep proxy /etc/bash.bashrc grep proxy ~/.bashrc cat /etc/apt/apt.conf sudo fuser -vvv /var/lib/dpkg/lock sudo fuser -vvv /var/cache/apt/archives/lock cat /etc/lsb-release uname -a sudo rm /var/lib/apt/lists/lock sudo rm /var/cache/apt/archives/lock sudo rm /var/lib/dpkg/lock sudo cp -arf /var/lib/dpkg /var/lib/dpkg.backup sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-bad sudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status || sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/status sudo mv /var/lib/dpkg/available /var/lib/dpkg/available-bad sudo cp /var/lib/dpkg/available-old /var/lib/dpkg/available sudo rm -rf /var/lib/dpkg/updates/* sudo rm -rf /var/lib/apt/lists sudo rm /var/cache/apt/*.bin sudo mkdir /var/lib/apt/lists sudo mkdir /var/lib/apt/lists/partial LANG=C;sudo apt-get clean LANG=C;sudo apt-get autoclean LANG=C;sudo apt-get --purge autoremove LANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000 sudo dpkg --configure -a sudo dpkg --clear-avail LANG=C;sudo apt-get -f install LANG=C;sudo apt-get --fix-missing install LANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgrade find /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; cat -n "$1"' _ '{}' \;

Я скопировал это verbatim из PackageManagementTroubleshoootingProcedure 2 марта 2014 года. Эти команды развивались в прошлом, и рекомендуемые команды в этой статье могут быть изменены или расширены снова в будущем. Поэтому вы можете работать с шага 5 там. (Эта статья, созданная / отредактированная «Сторонниками вики документации Ubuntu», особенно Марк Рикенберг, - лицензирована CC-BY-SA 3.0, которая позволяет включить здесь с надлежащей атрибуцией.)

Некоторые из эти команды пытаются исправить проблему (а также могут отображать диагностическую информацию); другие отображают ценную информацию о проблеме, которую вы можете включить в свой вопрос или иным образом предоставлять кому-то, кто помогает вам. (Или, в зависимости от ваших навыков, может позволить другим пользователям диагностировать и решать проблемы.)

Часто это исправляет, но когда это не так, часто дает достаточно информации для исправления это.

Вам не нужно вручную вводить эти команды; вы можете их скопировать и вставить. Однако я рекомендую вставлять и запускать каждый отдельно. Это дает более четкое представление о том, из каких команд.

16
ответ дан 24 July 2018 в 17:09
  • 1
    Я скопировал весь блок и вставлю вместо запуска один за другим. Хотя несколько команд в этом бесполезны, а некоторые не удались, но, в конце концов, это помогает в моем случае – phuclv 15 January 2018 в 12:45

Вы отрезали, когда вы отредактировали /var/lib/dpkg/status. Восстановите его из резервной копии, сделанной перед ее редактированием. Конечно, вы сделали резервную копию, верно?

Поскольку вы не сделали резервную копию, отредактируйте ее снова, осторожно. Старайтесь не наносить больше урона.

Вы можете использовать /var/lib/dpkg/status.old в качестве контрольной точки. Это резервная копия файла status до последнего времени dpkg. Запустите

diff /var/lib/dpkg/status.old /var/lib/dpkg/status

, чтобы увидеть различия. Отмените изменения, которые вы сделали вручную, и сохраните изменения, внесенные в последний прогон dpkg.

Если вам действительно не удается восстановить файл, скопируйте /var/lib/dpkg/status.old поверх /var/lib/dpkg/status , Вы получите хорошо сформированную, но устаревшую базу данных пакетов.

Вам не нужно редактировать /var/lib/dpkg/status при нормальной работе. Даже если все идет серьезно, /var/lib/dpkg/status не является чем-то, что требует вмешательства администратора. Независимо от ваших проблем с crossplatformui, есть, вероятно, лучший способ их решения. Единственный раз, когда мне нужно было отредактировать /var/lib/dpkg/status, было то, что файл восходящего Packages был сломан.

23
ответ дан 24 July 2018 в 17:09
  • 1
    Я также хотел бы знать, как лучше вы упомянули, чтобы удалить crossplatformui, если бы вы могли помочь, я попытался все возможное, чтобы удалить его, и попытался найти множество решений, но только тот, о котором я говорил, работал ... – Nirmik 13 May 2012 в 20:58
  • 2
    @Nirmik Не знаю, о crossplatformui. Задайте это как отдельный вопрос. Я могу сказать вам, что за более чем десятилетие использования dpkg, включая многие неофициальные источники, мне очень редко нужно было редактировать файл status и только тогда, когда был поврежден сторонний репозиторий. – Gilles 13 May 2012 в 21:01
  • 3
    Хорошо ... Thanx много еще раз .... как вы полагаете, я опубликую его как новый вопрос :) также, поскольку вы, кажется, очень продвинутый пользователь, я хотел бы спросить вас, знаете ли вы что-нибудь о том, -KTEYS работать ?? (моя беспроводная клавиша работает) – Nirmik 13 May 2012 в 21:08
  • 4
    Пытался поставить старую вместо нового, не исправился для меня. :-( – Stéphane Gourichon 26 November 2015 в 15:22
  • 5
    Re: {Вы испортили, когда вы отредактировали / var / lib / dpkg / status}, как и для меня - нет, я не, я не касался этого файла :) Однако это только решение, которое разрешает проблему в моем дело. Спасибо. – ruslo 8 November 2016 в 14:30

Откройте терминал и выполните следующие команды по одному за раз:

sudo rm /var/lib/apt/lists/* -vf sudo apt-get update

См. также:

https://help.ubuntu.com/community/PackageManagerTroubleshootingПроцедура [ ! d2]
80
ответ дан 24 July 2018 в 17:09
  • 1
    что делает -vf? – speedox 2 February 2013 в 21:42
  • 2
    @speedox, согласно man rm, -v означает «verbose», а -f означает «force». Другими словами, удалите все указанные файлы без запроса и сообщите пользователю, что он делает. – fouric 10 April 2013 в 05:21
  • 3
    В моем случае, только что sudo apt-get update исправил проблему. Я думаю, что Allan упомянул о новых версиях apt, которые исправляют это автоматически, поэтому, возможно, сначала попробуйте обновление. – ThorSummoner 4 September 2015 в 01:22

Я также видел, что эта проблема возникает, когда у вас слишком много источников в ваших репозиториях.

Попробуйте решение, опубликованное выше и / или, возможно, это, что иногда рекомендуется на панели запуска:

sudo mv /var/lib/apt/lists /var/lib/apt/lists-old sudo mkdir -p /var/lib/apt/lists/partial sudo apt-get update

Сообщите нам, как вы это делаете.

11
ответ дан 24 July 2018 в 17:09
  • 1
    Один человек обнаружил, что ему приходилось делать эти два шага несколько раз, но в конечном итоге это сработало. – John S Gruber 9 September 2012 в 10:24
  • 2
    Спасибо! Это не работало с DSL без makedir. – Doug 26 May 2014 в 07:33
  • 3
    Нечетно положить -vf в конец команды rm. – Keith Thompson 9 June 2014 в 10:50
  • 4
    Это не решило проблему для меня. обновление все еще показывает мне эту ошибку. – marines 4 July 2014 в 14:01
  • 5
    Это повторяющаяся проблема. Время от времени это происходит. Кто-нибудь знает о причине этой проблемы? – Rushil 3 March 2015 в 12:58
  • 6
    Я отредактировал ответ для понимания способности @jasser – Allan 21 August 2015 в 21:45

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

Перейти к Software & amp; обновления -> Ubuntu Software -> Загрузить с -> Другое-> Выбрать лучший сервер Подождите испытания. В конце тестов будет выбран лучший сервер, не обязательно ближайший, а не основной сервер или сервер для вашей локали. Теперь перезагрузите данные Repo, он завершится правильно.
3
ответ дан 24 July 2018 в 17:09

Я сделал

sudo apt-get clean sudo apt-get update

, и он сработал.

18
ответ дан 24 July 2018 в 17:09

Я столкнулся с аналогичной ошибкой:

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

Кредит отправляется на этот пост.

4
ответ дан 31 July 2018 в 20:08

Я сделал

sudo apt-get clean
sudo apt-get update

, и он работал.

18
ответ дан 14 August 2018 в 14:07

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

  • Перейти к Software & amp; обновления -> Программное обеспечение Ubuntu -> Загрузить из -> Другое-> Выбрать лучший сервер
  • Подождите испытания. В конце тестов будет выбран лучший сервер, не обязательно ближайший, а не главный сервер или сервер для вашей локали.
  • Теперь загрузите данные репо, он будет закончен правильно.
3
ответ дан 14 August 2018 в 14:07

Другие вопросы по тегам:

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