Ошибка при обновлении Ubuntu - система пакета повреждается

Это - для Ubuntu 16.04 LTS, я получил подсказку:

Обновленное программное обеспечение доступно для этого компьютера. Вы хотите установить его теперь?

Когда я продолжаю обновление, оно дает мне ошибку:

The package system is broken -
Check if you are using third party repositories. If so disable them, since they are a common source of problems.
Furthermore run the following command in a Terminal: apt-get install -f

Как я могу узнать, какие репозитории сторонних производителей я использую?

На основе исходных данных, обеспеченных ниже, я попробовал ниже команд. Также упомянутый вывод -

sudo способная установка-f

dpkg: ошибка: чтение информационного файла пакета '/var/lib/dpkg/status' ': ошибка ввода/вывода E: подпроцесс/usr/bin/dpkg возвратил код ошибки (2)

sudo dpkg - настройте-a

dpkg: ошибка: чтение информационного файла пакета '/var/lib/dpkg/status' ': ошибка ввода/вывода

sudo способное обновление

Чтение списков пакета... Ошибка! E: Считайте ошибку - чтение (5: ошибка ввода/вывода) W: можно хотеть работать склонный - заставляют обновление исправлять эти проблемы E: файл кэша пакета повреждается

1
задан 14 August 2017 в 22:13

3 ответа

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

Первопричина:

Проблема, если я не ошибаюсь, была с дисковым пространством. Во время одного из недавних обновлений мое дисковое пространство стало полным, и 0% было доступно для обновлений. Из-за этого повреждается/var/lib/dpkg/status. И после этого это просто отказывается обновлять, устанавливать или удалять любое приложение и дало упомянутую выше ошибку.

Шаги для решения вопроса:

  1. Первый, зафиксируйте причину позади путаницы. Очищенный немного старых и нежелательных файлов к свободному дисковое пространство. Теперь у меня есть почти 5%-е доступное дисковое пространство, которое должно быть достаточным для нормального поведения и завершить исходное обновление, которое перестало работать из-за недостаточного дискового пространства.
  2. Теперь, возместите ущерб, который это нанесло. Корректный файл /var/lib/dpkg/status . Здесь, как обычно, эксперты и их вклад на этом форуме помогли мне получить предыдущий известный хороший файл состояния от /var/backups. Каждый раз, когда Вы делаете установку или обновление, файл состояния сохранен к резервному копированию gzipped под /var/backups. Относитесь здесь для полных деталей об этом. Ниже команды, которые я использовал -

~ $ sudo mv $/var/lib/dpkg/status/var/lib/dpkg/status_bkup

~ sudo CP/var/backups/dpkg.status.2.gz/var/lib/dpkg /

, ~ $ sudo gunzip-d/var/lib/dpkg/dpkg.status.2.gz

~ $ mv $/var/lib/dpkg/dpkg.status.2/var/lib/dpkg/status

~ sudo склонный - получают обновление

вуаля!! это завершилось, обновление без ошибок стояло ранее.

  1. Теперь, чтобы завершить обновление и гарантировать, что проблема разрешена; попробуйте обновление или установку нового приложения -

, ~ $ sudo склонный - получают установку-f

Выбранные 14,3 МБ в 15 (935 кБайт/с)
шаблоны Извлечения от пакетов: 100%, Предварительно конфигурирующих пакеты... dpkg: ошибка: парсинг файла '/var/lib/dpkg/status' 'около строки 18 299 пакетов>' libgdk-pixbuf2.0-common ': конец файла во время значения поля' Исходный Специалист по обслуживанию '(недостающий финал> новая строка) E: подпроцесс/usr/bin/dpkg возвратил код ошибки (2)

  1. Так или иначе, файл состояния был снова изменен, и была представлена новая ошибка. Так как теперь я знаю то, что является файлом состояния и как диагностировать, я понял, что это из-за синтаксической ошибки в файле состояния. Было легко определить, что'> 'отсутствует для одного из пакетов в конце. Исправленный файл состояния для включения'> 'в конец.

  2. Попробовали еще раз, и это было успешно на этот раз!

С наилучшими пожеланиями,

Anirudha

1
ответ дан 7 December 2019 в 13:30

если у Вас есть синаптический диспетчер пакетов it will open software sources

здесь, можно отключить/разрешить репозитории enter image description here

1
ответ дан 7 December 2019 в 13:30

В командной строке (например, Gnome terminal, или KDE's konsole) выполняет это:

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

Это удалит кэш пакета и затем обновит для получения списков пакета от внешнего repos. Добавьте && sudo apt dist-upgrade, Вы, также хотят сделать полное обновление впоследствии.

Примечание && просто средства, которые, если первая часть завершается без ошибки затем, выполняют следующую часть.

0
ответ дан 7 December 2019 в 13:30

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

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