Проверка зависимостей deb от текущей системы
Я знаю, что могу перечислить .deb
зависимости с использованием dpkg --info
, но есть ли какой-либо автоматизированный способ проверки этих зависимостей от текущей системы? Что меня интересует, так это статус: будет ли пакет установлен корректно или же он выйдет из строя.
2 ответа
Согласно инструкции: 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
сдастся перед проверкой зависимостей.