У меня есть базовый пакет, который предоставляет мою функциональность (wireguard-tools, взято из интернета ).
Этот пакет не содержит файлов конфигурации для сетевых интерфейсов (как и должно быть).
Затем я создал несколько пакетов с этими файлами конфигурации, которые должны быть развернуты только по одному для каждого соответствующего образа (например, image-1
включает wireguard-1-conf
, в то время как image-2
включает wireguard-2-conf
).
Я бы хотел настроить SystemD, но я могу сделать это только тогда, когда у меня настроен интерфейс, и это произойдет только тогда, когда установлен пакет *-conf
.
К сожалению, служебный файл SystemD ("wg-quick @ .service") развертывается пакетом wireguard-tools
, и мой зависимый пакет *-conf
не может его увидеть:
ERROR: Function failed: SYSTEMD_SERVICE_wireguard-1-conf value wg-quick@wg0.service does not exist
Мне удалось сделать грязный обходной путь, но я чувствую себя самым грязным, делая это в моем рецепте *-conf
:
do_install_append () {
touch ${D}${systemd_system_unitdir}/wg-quick@wg0.service
pkg_postinst_${PN} () {
rm -f $D/${systemd_system_unitdir}/wg-quick@wg0.service
Как мне поступить, чтобы заставить его работать "правильно"?
Есть ли элегантный способ сделать "wg-quick @ .service" из wireguard-tools
доступным для *-conf
?
Заранее спасибо.
Дополнительная информация
Мои *-conf
рецепты наследуют systemd и включают wireguard-tools
зависимость:
inherit systemd
...
DEPENDS_${PN} = "wireguard-tools"
RDEPENDS_${PN} = "wireguard-tools"
Мне так больше ничего не стоит упоминать в моих рецептах.