如何编写yocto / bitbake配方来用我自己的文件替换默认的vsftpd.conf文件?

时间:2017-07-24 00:12:21

标签: linux yocto recipe vsftpd

我想用我自己的文件替换默认的vsftpd.conf文件! 我的bitbake文件如下所示:

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 个答案:

答案 0 :(得分:1)

您需要做的是在您自己的图层中使用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}
}

meta-openembedded here

的示例

答案 1 :(得分:0)

你应该加入你的食谱:

FILES_${PN} += " file you installed"