Как мне написать рецепт yocto/bitbake, чтобы заменить файл vsftpd.conf по умолчанию моим собственным файлом?
Я хочу заменить файл vsftpd.conf по умолчанию своим собственным файлом! Мой битовый файл выглядит следующим образом:
bbexample_1.0.bb
DESCRIPTION = "Configuration and extra files for TX28"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = ""
S = "${WORKDIR}"
SRC_URI += " \
file://ld.so.conf \
file://nginx/nginx.conf \
file://init.d/myscript.sh"
inherit allarch
do_install () {
install -d ${D}${sysconfdir}
install -d ${D}${sysconfdir}/nginx
install -d ${D}${sysconfdir}/init.d
rm -f ${D}${sysconfdir}/ld.so.conf
install -m 0755 ${WORKDIR}/ld.so.conf ${D}${sysconfdir}
install -m 0755 ${WORKDIR}/nginx/nginx.conf ${D}${sysconfdir}/nginx/
install -m 0755 ${WORKDIR}/init.d/myscript.sh ${D}${sysconfdir}/init.d/
}
bbexample_1.0.bbappend
FILESEXTRAPATHS_prepend := "${THISDIR}/${PN}-${PV}:"
SRC_URI += " \
file://vsftpd.conf"
do_install_append () {
install -m 0755 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}
}
Но файл не может быть заменен! Что случилось?
2 ответа
Решение
Вы должны добавить к своему рецепту:
FILES_${PN} += " file you installed"
Что вам нужно сделать, это использовать bbappend в вашем собственном слое,
vsftpd
рецепт находится в meta-openembedded/meta-networking/recipes-daemons
Таким образом, вам нужно создать файл с именем vstfpd_%.bbappend
(%
делает его действительным для каждой версии)
Этот файл должен находиться в <your-layer>/meta-networking/recipes-daemons
, Вы также должны поставить свой заказ vsftpd.conf
в <your-layer>/meta-networking/recipes-daemons/vsftpd
папка
Его содержание должно быть:
FILESEXTRAPATHS_prepend := "${THISDIR}/files:"
do_install_append(){
install -m 644 ${WORKDIR}/vsftpd.conf ${D}${sysconfdir}
}
Пример из мета-открытого здесь