Назад | Перейти на главную страницу

Проверка зависимостей deb от текущей системы

Я знаю, что могу перечислить .debзависимости, использующие dpkg --info, но есть ли какой-нибудь автоматический способ проверить эти зависимости в текущей системе? Что меня интересует, так это статус: будет ли пакет установлен чисто или он не удастся.

Согласно инструкции: dpkg -i --force-bad-path --dry-run foo.deb. Однако это не работает, об этом была зарегистрирована ошибка 10 лет назад.

Соответствующая опция есть в apt-get и aptitude, но это относится только к пакетам, полученным через apt.

Вот способ, который очень хакерский, но вроде как работает.

Убедитесь, что вы не root, иначе вы рискуете перезаписать некоторые системные файлы.
Создайте временный каталог и перейдите в него.

mkdir root
cp -as /var/lib/dpkg .
rm dpkg/lock dpkg/triggers/Lock
fakeroot dpkg --force-not-root --force-bad-path --admindir=dpkg --instdir=root --log=log -i mypackage.deb

Это распакует пакет, а затем пожалуется на какие-либо недостающие зависимости от stderr. Скорее всего, он вернет ненулевой статус, даже если отсутствуют недостающие зависимости из-за сбоя. postinst сценарий.

Я не пробовал использовать пакет с preinst сценарий, возможно, что dpkg сдастся перед проверкой зависимостей.