Как мне исправить ошибку "Проблема со списком слияний" или "файл состояния не может быть проанализирован" при попытке выполнить обновление?

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

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

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

Эти команды терминала должны решить вашу проблему:

Сначала удалите список слияния, открыв терминал (нажмите Ctrl+Alt+T для запуска) и выполните эту команду*:

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

Затем создайте новый, выполнив простое обновление:

sudo apt-get update

Вот сообщение об ошибкедругой) для этой проблемы, которая теперь исправлена, поэтому она не должна создавать новые искаженные файлы, однако, если у вас уже есть искаженные файлы, вам необходимо удалить их, как описано в этом посте.


*Параметры, используемые для rm, следующие -v многословный

-v, --подробно объясните, что делается

и -f сила

-f, --принудительно игнорировать несуществующие файлы и аргументы, никогда не запрашивать

Если вы когда-либо не уверены в командной строке или используемых параметрах, всегда обращайтесь к страница руководства для команды. К ним можно получить доступ в Интернете, выполнив поиск man и команды, например мужчина рмили вы можете получить доступ к той же информации, набрав точно такую же команду в терминале, например man rm инструкции по выходу со страницы будут находиться в нижней части терминала следующим образом

picture of man page options

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

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

Смотрите также:

Ты облажался, когда редактировал /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 файл был поврежден.

Я сделал

sudo apt-get cleansudo apt-get update

и это сработало.

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

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

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

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

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

Для шаг 5, выполните эти команды в окне терминала:

ubuntu-support-statussudo grep -R proxy /etc/apt/*grep proxy  /etc/environmentecho $http_proxyecho $ftp_proxygrep proxy /etc/bash.bashrcgrep proxy ~/.bashrccat /etc/apt/apt.confsudo fuser -vvv /var/lib/dpkg/locksudo fuser -vvv /var/cache/apt/archives/lockcat /etc/lsb-releaseuname -asudo rm /var/lib/apt/lists/lock sudo rm  /var/cache/apt/archives/locksudo rm /var/lib/dpkg/locksudo cp -arf /var/lib/dpkg /var/lib/dpkg.backupsudo mv /var/lib/dpkg/status /var/lib/dpkg/status-badsudo cp /var/lib/dpkg/status-old /var/lib/dpkg/status  ||  sudo cp /var/backups/apt.extended_states.0 /var/lib/dpkg/statussudo mv /var/lib/dpkg/available /var/lib/dpkg/available-badsudo cp /var/lib/dpkg/available-old /var/lib/dpkg/availablesudo rm -rf /var/lib/dpkg/updates/*sudo rm -rf /var/lib/apt/listssudo rm /var/cache/apt/*.binsudo mkdir /var/lib/apt/listssudo mkdir /var/lib/apt/lists/partialLANG=C;sudo apt-get cleanLANG=C;sudo apt-get autocleanLANG=C;sudo apt-get --purge autoremoveLANG=C;sudo apt-get --fix-missing update -o APT::Cache-Limit=100000000sudo dpkg --configure -asudo dpkg --clear-availLANG=C;sudo apt-get -f installLANG=C;sudo apt-get --fix-missing installLANG=C;sudo apt-get update -o APT::Cache-Limit=100000000 && sudo apt-get dist-upgradefind /etc/apt -name '*.list' -exec bash -c 'echo -e "\n$1\n"; cat -n "$1"' _ '{}' \;

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

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

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

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

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

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

sudo mv /var/lib/apt/lists /var/lib/apt/lists-oldsudo mkdir -p /var/lib/apt/lists/partialsudo apt-get update

Дайте нам знать, как у вас дела.

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

Reading package lists... Error!E: Encountered a section with no Package: headerE: Problem with MergeList /var/lib/dpkg/statusE: 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 запускался без проблем.

Заслуга принадлежит этому посту.

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

  • >>>>Перейдите в раздел Программное обеспечение и обновления - Программное обеспечение Ubuntu - Загрузка с -Другого-Выберите Лучший Сервер

  • Дождитесь результатов анализов. В конце тестов будет выбран лучший сервер, не обязательно ближайший, не обязательно главный сервер или сервер для вашего региона.

  • Теперь перезагрузите данные репо, все завершится должным образом.

У меня была такая же проблема. Эти команды исправили это:

sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-newsudo mv /var/lib/dpkg/status-old /var/lib/dpkg/statussudo apt-get update

Единственным решением этой проблемы является выполнение следующих двух команд, одну за другой, в терминале (Ctrl+Alt+T):

sudo rm -r /var/lib/apt/lists/*

Вы можете создать новый с помощью этой команды:

sudo apt-get clean && sudo apt-get update

Вуаля! Это должно решить ошибку “проблема со списком слияния”.

Ссылка: Как Исправить Ошибку Обновления Ubuntu: Проблема Со Списком Слияний

Меня продолжает сбивать с толку то, как неуклюже эта операционная система обрабатывает свои обновления, даже сейчас, когда это и подобные вещи требуются без специального неправильного использования пользователем.