Невозможно выполнить любую команду apt-get

Это странная проблема, и я не могу найти прямого решения.

Я запустил sudo apt-get update && sudo apt-get upgrade -y (я никогда не запускал его на этом компьютере, но это Ubuntu Server 12.04, как и все остальные).

Он проходит через обновления и частично проходит через обновление, затем я получаю эту ошибку

(Reading database ... 80%dpkg: unrecoverable fatal error, aborting:
 files list file for package 'mysql-common' is missing final newline
E: Sub-process /usr/bin/dpkg returned an error code (2)

Теперь я получаю эту же ошибку, когда пытаюсь выполнить любую команду apt-get.

Я пытался:

apt-get clean
apt-get autoremove
apt-get install -f mysql-common
apt-get install --reinstall mysql-common

И, может быть, некоторые другие, о которых я не могу думать сейчас.

Большую часть времени, не всегда, и я могу точно вспомнить, по каким командам это происходит (я уже давно этим занимаюсь), это заканчивается этой ошибкой. Я все еще не могу обновить.

Есть идеи?

Редактировать

Ответ Рехатка привел меня к проверке mysql-common.files на предмет ошибки files list file for package 'mysql-common' is missing final newline

Файл - это просто мусорный текст.

Это как файл шаблона, который является общим для всех систем? Могу ли я просто вставить текст из другой системы?

2
задан 13 March 2016 в 14:22

2 ответа

Перейти к:

cd /var/lib/dpkg/info

Типу

ls -l mysql*

Если появляется файл, такой как «mysql-common.list» "или" mysql-common.md5sums "или что-нибудь еще, сделайте следующее:

sudo mv ./mysql-common.list ~/mysql-common.list

и, если это существует

sudo mv ./mysql-common.md5sum ~/mysql-common.md5sum

Перезагрузите систему. Затем дайте нам знать, каков ваш статус впоследствии (не работает ... работает ... полуработает ...)

Примечание: если они есть в этом каталоге, откройте их и посмотрите, есть ли пустая строка в конце или скрытые символы и т. д. (cat ./mysql-common.md5sum). Если вы не можете определить, есть ли в этих файлах скрытые символы, которые портят их, выполните следующие действия: он удалит все буквы, цифры и косые черты, которые могут быть в этих файлах:

cat ./mysql-common.list | egrep -v [[:alpha:]]

[ 1117] Все, что показывается после этого, кроме /. или / .. это ваша проблемная линия.

0
ответ дан 13 March 2016 в 14:22

У меня недавно была та же проблема с другим пакетом (linux-libc-dev).

Вот решение, которое сработало для меня (частично опираясь на ответ RedHatcc):

  • Убедитесь, что файл списка недействителен

    cd /var/lib/dpkg/info
    cat linux-libc-dev\:armhf.list` (insert your package name here!)
    

    Неверный файл будет отображаются пустыми или содержат не алфавитно-цифровые символы.

    Допустимый список пакетов будет содержать обычные текстовые пути, например:

    /.
    /usr
    /usr/include
    /usr/include/sound
    /usr/include/sound/asequencer.h
    /usr/include/sound/asound.h
    /usr/include/sound/sfnt_info.h
    
  • Удалить список недопустимых пакетов

    sudo rm linux-libc-dev\:armhf.list (вставить имя пакета здесь!)

  • Заставить APT переустановить пакет, воссоздав список удаленных пакетов

    sudo apt-get install linux-libc-dev --reinstall (введите имя вашего пакета здесь!)

  • Убедитесь, что файл списка действителен

    В список допустимых пакетов будут включены пути в виде простого текста:

    /.
    /usr
    /usr/include
    /usr/include/sound
    /usr/include/sound/asequencer.h
    /usr/include/sound/asound.h
    /usr/include/sound/sfnt_info.h
    

    Недопустимый файл будет выглядеть пустым или содержать не буквенно-цифровые символы.

  • [+1121]
0
ответ дан 13 March 2016 в 14:22

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

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