Хотя разработчики ядра стараются избегать внесения несовместимых изменений в ABI пользовательского пространства, иногда им все равно приходится это делать (, обычно по соображениям безопасности ), и тогда могут возникнуть такие проблемы. Чтобы избежать внезапной поломки бинарных файлов пользовательского пространства, изначально старый ABI будет по-прежнему включен, но через некоторое время он будет отключен по умолчанию. В этот момент могут возникнуть такие проблемы.
Чтобы ничего не провалилось, у вас есть два варианта:
В вашей конкретной проблеме наиболее вероятным виновником является эмуляция vsyscall, которая отключена по умолчанию в большинстве последних дистрибутивов, но которую можно включить, указав параметр времени загрузки ядра -vsyscall=emulate
.
Сообщение об ошибке дает некоторое представление о том, что происходит и как это исправить:
package is in a very bad inconsistent state; you should
reinstall it before attempting configuration
Проблема заключается в том, что состояние пакета, как описано в dpkg
«базе данных» (файлов в /var/lib/dpkg/info
, не соответствует тому, что находится в системе. Это может произойти из-за повреждения файлов под /var/lib/dpkg/info
или из-за того, что файлы, установленные пакетом, были изменены без участия dpkg
.
Соответствующее исправление — переустановитьgdb
:
sudo apt --reinstall install gdb
Это заменяет файлы в системе, включая dpkg
файлы базы данных, файлами в пакете, при необходимости загружая его снова. В результате база данных снова синхронизируется с файловой системой (, по крайней мере, в том, что касается файлов gdb
пользователя ).