Компьютер выдал мне следующий вывод в окне:
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.
Как я могу это исправить?
Эти команды терминала должны решить вашу проблему:
Сначала удалите список соединений, открыв терминал (для запуска нажмите Ctrl+Alt+T) и выполните эту команду*:
sudo rm -vf /var/lib/apt/lists/*
Далее сгенерируйте новый, запустив простое обновление:
sudo apt-get update
Вот отчет об ошибке (и еще один) для этой проблемы, которая теперь исправлена, так что она не должна создавать новые неверные файлы, однако если у вас уже есть неверные файлы, вы должны удалить их, как объяснено в этой заметке.
* Для rm используются следующие опции: -v
verbose
-v, --verbose объяснить, что делается
и -f
сила
-f, --force игнорируйте несуществующие файлы и аргументы, никогда не запрашивайте
Если вы когда-либо не уверены в командной строке или используемых опциях, всегда обращайтесь к странице manual page за командой. Доступ к ним можно получить через Интернет, выполнив поиск man и команду, например man rm.
или вы можете получить доступ к той же информации, набрав в терминале точно такую же команду, например man rm
инструкции по выходу из страницы будут находиться в нижней части терминала вот так
Одноразовое решение эта проблема заключается в том, чтобы запустить следующие две команды, одну за другой, в терминале ( Ctrl + Alt + T ):
sudo rm -r /var/lib/apt/lists/*
Вы можете создать свежий с такой командой:
sudo apt-get clean && sudo apt-get update
Вуаля! Это должно решить "проблему со списком слияния".
Ссылка: Как исправить ошибку обновления Ubuntu: проблема с MergeList
У меня была та же самая проблема и я попробовал все устранение неполадок, упомянутые в других ответах. Как ни странно, единственное исправление было другим шагом:
Перейти к Software & updates -> Ubuntu Software -> Загрузить с -> Other-> Выбрать лучший сервер
Ждать тестов. В конце тестов будет выбран лучший сервер, не обязательно ближайший или главный сервер, или сервер для вашей локали.
Теперь перезагрузите данные Repo, Все закончится должным образом.
У меня возникла такая же проблема. Эти команды исправили её:
sudo mv /var/lib/dpkg/status /var/lib/dpkg/status-new
sudo mv /var/lib/dpkg/status-old /var/lib/dpkg/status
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
прошло без проблем.
Я сделал
sudo apt-get clean
sudo apt-get update
и это сработало.
Обычно эту проблему решает выполнение шагов 2–5 процедуры диспетчера пакетов .
Для шага 2 отключите все PPA. Вы можете снять отметку со всех из них в Источниках программного обеспечения так же, как вы сняли отметку с одного; см. Как отключить определенный PPA? . Вы можете повторно включить их позже.
Для шага 3 закройте все открытые программы, которые вы можете. Возможно, будет безопасно держать ваш веб-браузер открытым, чтобы инструкции были перед вами. Но особенно важно убедиться, что все менеджеры пакетов не работают . Сюда входят Центр программного обеспечения, Средство обновления программного обеспечения (диспетчер обновлений в более старых версиях Ubuntu), Synaptic и 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"' _ '{}' \;
Я скопировал их дословно из PackageManagementTroubleshoootingProcedure 2 марта 2014 года. Эти команды развивались в прошлом, и рекомендуемые команды в этой статье могут быть изменены или расширены в будущем . Так что вы можете захотеть работать с шага 5 там . (Эта статья , созданная / отредактированная «Участниками вики-документации Ubuntu» - особенно Марком Райкенбергом ) - лицензирована CC-BY-SA 3.0 , что позволяет включить сюда с правильной атрибуцией.)
Некоторые из этих команд пытаются исправить проблему (а также могут отображать диагностическую информацию); другие отображают ценную информацию о проблеме, которую вы можете включить в свой вопрос или иным образом сообщить тому, кто вам помогает. (Или, в зависимости от ваших навыков, может позволить вам диагностировать и решать проблему.)
Часто это исправляет, но когда это не так, часто дает достаточно информации, чтобы исправить это. не нужно вручную вводить эти команды; вы можете скопировать и вставить их. Тем не менее, я рекомендую вставлять и запускать каждую отдельно. Это проясняет, какие команды выводят.
Вы облажались, когда редактировали / 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
.
Я также видел, как эта проблема возникает, когда у вас слишком много исходников в вашем репозитории.
Попробуйте решение, размещенное выше и/или, возможно, это также рекомендуется иногда на launchpad:
sudo mv /var/lib/apt/lists /var/lib/apt/lists-old
sudo mkdir -p /var/lib/apt/lists/partial
sudo apt-get update
Дайте нам знать, как вы попали в репозиторий.
Откройте терминал и выполните следующие команды по одной:
sudo rm /var/lib/apt/lists/* -vf
sudo apt-get update
См. также: