Конфликт файлов параллельной конфигурации Yocto - PullRequest
0 голосов
/ 18 января 2019

У меня есть базовый пакет, который предоставляет мою функциональность (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"

Мне так больше ничего не стоит упоминать в моих рецептах.

...