У меня возникла ошибка при попытке обновить мою систему. В настоящее время я не могу установить / удалить или обновить что-либо с помощью apt-get ...
Вот ошибка, которую я получаю при запуске apt-get update
dpkg: unrecoverable fatal error, aborting:
reading files list for package 'indicator-session': Input/output error
E: Sub-process /usr/bin/dpkg returned an error code (2)
Хорошо, я посмотрел вокруг еще немного и нашел решение: Вот в этом посте: Невозможно установить какие-либо обновления через менеджер обновлений / apt-get upgrade
. Есть ссылка в ответе на эту страницу: http://ubuntuforums.org/archive/index.php/t-1232143.html
Все сводится к редактированию / var / lib / dpkg / файл состояния и удаление всего, что связано с поврежденным пакетом.
Моя система снова работает и работает!
Вот вывод, который я получил из apt-get
:
dpkg: warning: files list file for package `libecryptfs0' missing, assuming package has no files currently installed.
dpkg: warning: files list file for package `libplexus-containers1.5-java' missing, assuming package has no files currently installed.
dpkg: warning: files list file for package `apport' missing, assuming package has no files currently installed.
И вот как я это исправил:
Резервное копирование файла состояния dpkg: [ 1124]
cp /var/lib/dpkg/status{,.backup}
Отредактируйте файл /var/lib/dpkg/status
и удалите разделы для пакетов, о которых apt-get
напечатано предупреждение. Убедитесь, что вы удалили весь раздел об этих пакетах, т.е. е. начиная со строки Package: libecryptfs0
и заканчивая первой пустой строкой.
В качестве альтернативы вы можете использовать sed
, чтобы выполнить работу за вас:
sed -i.backup -e '/^Package: \(libecryptfs0\|libplexus-containers1\.5-java\|apport\)$/,/^$/d' /var/lib/dpkg/status
Эта команда удаляет все разделы между и включая строки с Package: <PACKAGE_NAME>
и следующую пустую строку. Вы можете поместить любые допустимые имена пакетов в круглые скобки \(…\)
, разделить их с помощью \|
и экранировать точки (.
→ \.
). Опция -i.backup
редактирует файл на месте и создает файл резервной копии с суффиксом .backup
(так что вы можете пропустить шаг 1, если вы используете вариант) вместо записи результата в стандартный вывод.
Запустите sudo apt-get -f install
для настройки ненастроенных пакетов и (пере) установки отсутствующего пакета. Пакеты отсутствуют, потому что мы удалили их из файла status
.
¹ См. Как получить разрешения на редактирование файлов конфигурации системы? , как это сделать.