Как исправить ошибку «Проблема с MergeList» или «Не удалось проанализировать файл состояния» при попытке выполнить обновление? ubuntu 14.04 [дубликат]

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

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.

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

355
задан 17 November 2015 в 17:54

8 ответов

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

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

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

Затем, генерируйте новый путем выполнения простого обновления:

sudo apt-get update

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


*Опции, используемые для комнаты, -v подробный

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

и -f сила

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

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

picture of man page options

485
ответ дан 1 November 2019 в 05:46

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

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

См. также:

82
ответ дан 1 November 2019 в 05:46

Вы облажались, когда редактировали /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
ответ дан 1 November 2019 в 05:46

Я сделал

sudo apt-get clean
sudo apt-get update

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

18
ответ дан 1 November 2019 в 05:46

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

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

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

Сообщают нам, как Вы преуспеваете.

11
ответ дан 1 November 2019 в 05:46

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

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
ответ дан 1 November 2019 в 05:46

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

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

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

  • Теперь Перезагружают данные Repo, Они закончатся правильно.

3
ответ дан 1 November 2019 в 05:46

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

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

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

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

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

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

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 Wiki" - особенно, Mark Rijckenberg - является лицензируемый CC SA 3.0, который позволяет включение здесь с надлежащей атрибуцией.)

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

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

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

16
ответ дан 1 November 2019 в 05:46

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

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