В настоящее время я не могу установить какие-либо пакеты. Я получаю следующую ошибку:
dpkg: unrecoverable fatal error, aborting:
too-long line or missing newline in `/var/lib/dpkg/diversions
Я пробовал различные подходы:
sudo dpkg --configure -a
sudo apt-get clean
sudo dpkg-divert --list
sudo apt-get check
sudo apt-get install -f
и т. Д. но все безрезультатно. Либо вывод был, по-видимому, нормальным, либо была выдана ошибка, приведенная выше.
Я озадачен тем, как действовать, и буду признателен за любую помощь. Если требуется дополнительная информация, просто спросите.
Спасибо за ответ. Я последовал советам и теперь получаю другую ошибку:
(Чтение базы данных ... 50% dpkg: неисправимая фатальная ошибка, прерывание: в файле списка файлов для пакета 'libksane0' отсутствует последняя новая строка E: process / usr / bin / dpkg вернул код ошибки (2)
Вот ссылка на текущие отклонения: http://paste.ubuntu.com/823500/ и старый сломан: http://paste.ubuntu.com/823502/
Я попытался переустановить libksane0
, но произошла та же ошибка.
Во-первых, на всякий случай создайте резервную копию / var / lib / dpkg / diversions и / var / lib / dpkg / diversions-old.
Далее попробуйте скопировать / var / lib / dpkg / diversions-old поверх / var / lib / dpkg / diversions:
cd /var/lib/dpkg
mv diversions diversions.broken
cp diversions-old diversions
Теперь dpkg снова сможет работать, но это возможно что его база данных диверсий неполна. Переустановка (apt-get install --reinstall packagename
) уязвимых пакетов может быть хорошим способом восстановить это; Вопрос в том, как определить, какие пакеты были затронуты? Сравнение содержимого diversions.broken и diversions-old (diff -u diversions-old diversions.broken
) является одним из способов; ищите в /var/log/dpkg.log список недавно обновленных пакетов и переустанавливайте их на всякий случай - это другое. Также возможно, что ничего плохого не произойдет, если у вас будет немного устаревшая база данных о диверсиях; все зависит от того, что именно находится в этих файлах.
Я знаю, что это действительно поздно, но другие люди могут найти это все еще полезным. На Kali (Debian-Variant) выскочило то же сообщение об ошибке с другим файлом, и лучшим решением, которое я нашел, было копирование ошибочного файла из все еще работающей копии Kali. Задача решена.