Как убедиться, что пакет debian не имеет зависимости
Я собираю пакет Debian, используя dpkg.
Пакет зависит от libvirt, что нежелательно.
Файл правил не определяет эту зависимость, но он добавляется dpkg, я полагаю, из-за некоторых обращений к libvirt-dev во время сборки.
Однако мой пакет прекрасно работает без libvirt. Таким образом, libvirt является "рекомендуемым" пакетом, но не "обязательным". Как мне переопределить эту зависимость и убедиться, что она отсутствует в моем окончательном файле deb?
1 ответ
Трудно понять, не видя ваш реальный пакет, но я предполагаю, что у вас есть бинарная или общая библиотека, которая связана с libvirt. Это вызвало бы dh_shlibdeps
включить libvirt в ${shlibs:Depends}
substvar.
Если это ваша проблема, то правильное решение зависит от того, что связано с libvirt. Это должно быть просто определить; просто беги ldd
на каждый двоичный объект или объект разделяемой библиотеки в вашем пакете, и grep для "libvirt".
Если то, что связано с libvirt, относится только к пакету и не является частью основной функциональности, тогда использование Recommended: действительно будет правильным. Делать dh_shlibdeps
исключить этот объект из проверки зависимостей, дать ему опцию -X. Пример цели для debian/rules
при условии упаковки в стиле debhelper7:
override_dh_shlibdeps:
dh_shlibdeps -Xname_of_your_object_to_exclude
Если вещи, связанные с libvirt, на самом деле являются важной частью функциональности пакета, то сгенерированная зависимость libvirt уместна. Если вы все еще не хотите этого, вам нужно будет решить, как избежать ссылок на libvirt во время сборки.