Невозможно установить какие-либо пакеты из-за неисправимой фатальной ошибки / var / lib / dpkg / diversions

В настоящее время я не могу установить какие-либо пакеты. Я получаю следующую ошибку:

 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, но произошла та же ошибка.

3
задан 3 February 2012 в 16:26

2 ответа

Во-первых, на всякий случай создайте резервную копию / 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 список недавно обновленных пакетов и переустанавливайте их на всякий случай - это другое. Также возможно, что ничего плохого не произойдет, если у вас будет немного устаревшая база данных о диверсиях; все зависит от того, что именно находится в этих файлах.

0
ответ дан 3 February 2012 в 16:26

Я знаю, что это действительно поздно, но другие люди могут найти это все еще полезным. На Kali (Debian-Variant) выскочило то же сообщение об ошибке с другим файлом, и лучшим решением, которое я нашел, было копирование ошибочного файла из все еще работающей копии Kali. Задача решена.

0
ответ дан 3 February 2012 в 16:26

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

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