Я знаю, что могу перечислить .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
сдастся перед проверкой зависимостей.