1

В безрассудной и глупой попытке решить проблемы с пространством на моем настольном компьютере я специально удалил Spotify из /opt прежде чем понял, что могу удалить его с помощью менеджера пакетов. После удаления папки я попытался очистить Spotify с помощью aptitude, но удаление файлов в /opt нарушило работу менеджера пакетов из-за ожидаемых, но отсутствующих каталогов и файлов.

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

Вопросы: Существуют ли какие-либо базы данных или плоские файлы, хранящиеся в aptitude или dpkg, где я могу выполнить проверку непротиворечивости как для него, так и для установленных пакетов, чтобы убедиться, что они коррелируют и в порядке?

Имеются ли в упомянутом программном обеспечении (dpkg, aptitude, apt- *) механизмы для меня? Я не вижу ничего в руководствах, но подумал, что спросить здесь, если кто-то знает способ.

веселит.

1 ответ1

2

Вы можете увидеть почти 1 все файлы установленного пакета, запустив

dpkg -L thatpackage

Или эта же информация доступна на http://packages.debian.org - вы выбираете пакет в требуемом дистрибутиве, а затем на странице этого пакета переходите по ссылке "список файлов" в строке таблицы, соответствующей вашей аппаратной архитектуре.

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


1 Некоторые пакеты динамически создают определенные файлы и каталоги, и, к сожалению, это не декларативно: они делают это с помощью простых сценариев оболочки в так называемых сценариях postinst и postrm , которые вызываются менеджером пакетов, когда определенные события происходят во время жизни пакета. Например, пакет может сгенерировать свой файл конфигурации, используя ucf из закрытого шаблона, используя информацию, полученную от пользователя на этапе конфигурации пакета, и установить сгенерированный файл где-нибудь в иерархии /etc

Эти "сантехнические" сценарии, принадлежащие пакету, хранятся в иерархии /var/lib/dpkg/info и имеют имена, соответствующие шаблону packagename.* . Кстати, списки файлов, установленных пакетом, и список файлов конфигурации, поддерживаемых пакетом, хранятся в одной иерархии с именами файлов, такими как packagename.list и packagename.conffiles . Это деталь реализации (лучше использовать dpkg -L или аналогичные устройства), но все же…

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .