Повреждаются много файлов в/var/lib/dpkg/info/; как восстановиться

Когда я работаю sudo apt-get (anything), Я неизменно получаю эту ошибку:

dpkg: unrecoverable fatal error, aborting:
 files list file for package 'thunderbird-gnome-support' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)

После некоторого поиска с помощью Google я узнаю, что это вызвано тем, что /var/lib/dpkg/info/thunderbird-gnome-support.list повреждено. Я cat тот файл, и это несомненно повреждено - это должно быть файлом простого текста, содержащим список абсолютных путей к файлам, но вместо этого является двоичным файлом.

Теперь я осматриваю другие файлы в том же каталоге, и кажется, что многие из них повреждены таким же образом. Это указывает, что что-то пошло сильно неправильно в моей файловой системе, которая заставила много файлов быть поврежденными. К сожалению, это, оказалось, влияло на системные файлы.

Как я восстанавливаюсь с этого?


Подробнее:

Только до этого, я установил стандартное обновление, когда Ubuntu предложила мне. Это было новое ядро Linux и некоторые заголовки системного файла.

После перезапуска они были моими спецификациями:

Спецификации ОС:

$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 13.10
Release:    13.10
Codename:   saucy
$ uname -a
Linux brendang-linux 3.11.0-24-generic #41-Ubuntu SMP Mon Jun 9 20:36:00 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux

Сразу после перезапуска впервые, целая файловая система, казалось, была смонтирована как только для чтения (который не имел место ранее). Впоследствии я должен был несколько раз перезагружать, прежде чем система работала. Я сделал touch /forcefsck промежуточный их для обеспечения этого fsck выполнения, и не уверены что еще потребности быть сделанными.

4
задан 2 July 2014 в 04:45

3 ответа

Я решил это следующим образом:

  • удалите незаконный файл (в случае OP /var/lib/dpkg/info/thunderbird-gnome-support.list
  • переустановите незаконное использование пакета apt-get install --reinstall thunderbird-gnome-support

Это воссоздало удаленный список файлов для меня также.

Конечно, это может быть громоздким, если много файлов повреждено, но в моем случае это был только единственный файл, и решение было довольно легко в этом случае.

0
ответ дан 1 December 2019 в 10:20

В моем случае я получил много *.list поврежденных файлов. Если Вы делаете

file /var/lib/dpkg/info/<package_name>.list

необходимо обычно добираться:

/var/lib/dpkg/info/<package_name>.list: ASCII text

но если Ваши файлы списка будут повреждены, то Вы доберетесь:

/var/lib/dpkg/info/<package_name>.list: data

Я сделал два сценария для решения этой проблемы.

Первый сценарий проверяет на это и переименовывает, каждый повредил .list файл в *.list.broken

move_broken_list_files.sh

Второй цикл сценария для каждого *.list.broken файла и переустановки силы пакета.

install_missing_list.sh

иногда установка перестала работать из-за проблем с триггерами:

fgets gave an empty string from '/var/lib/dpkg/info/libnih1:amd64.triggers'

в этом случае необходимо переместиться/переименовать тот файл как:

mv /var/lib/dpkg/info/libnih1:amd64.triggers /var/lib/dpkg/info/libnih1:amd64.triggers.broken

Надежда это помогает кому-то сталкивающемуся с той же путаницей.

2
ответ дан 1 December 2019 в 10:20

Скопируйте свой поврежденный список (можно переместить все .list файлы),

mkdir /tmp/damaged && mv /var/lib/dpkg/info/*.list /tmp/damaged

Затем можно установить новый пакет

apt install thunderbird-gnome-support
0
ответ дан 1 December 2019 в 10:20

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

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