Как я могу проверить, есть ли у меня точно такой же deb, как установленный в системе

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

В системах, основанных на оборотах, я бы сделал следующее

old-server$ rpm -qi foo

new-server$ rpm -qi -p foo-1.2.3.rpm

и сравнил размер, дату сборки, сборку. хост, и если они совпадают, то я знаю, что у меня есть точные обороты, которые мне нужны.

Есть ли эквивалентный способ сделать это в системах на основе dpkg?

Я вижу, что dpkg-query может вернуть MD5 некоторых данных, но на странице руководства сказано, что это связано с dselect, и я не могу чтобы получить какие-либо данные из него.

3
задан 1 November 2011 в 22:00

2 ответа

Вы можете сделать dpkg -l <packagename> и посмотреть, установлен ли пакет и какая у него версия. Это может не сработать, если у вас нет каких-либо рекомендаций по номерам версий и т. Д. (Например, при внесении изменений в код и при выпуске / установке вы должны увеличить номер версии)

0
ответ дан 1 November 2011 в 22:00

Я полагаю, что сравнение установленных файлов в системе с файлами внутри пакета должно дать вам хорошее представление? Вы можете извлекать файлы из * .deb с помощью dpkg -x <deb-filename> <directory-to-extract-in>, и вы можете получить список всех файлов, установленных установленным пакетом с помощью dpkg -L <package-name>.

Когда у вас есть эта информация, вы сможете сравнивать имена файлов, даты файлов, контрольные суммы или все, что вы хотите ...

0
ответ дан 1 November 2011 в 22:00

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

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