How to install nginx on yocto project
所以在yocto上正确安装nginx后
现在我正在尝试写我自己的配方来替换我在使用BBCLASSEXTEND =“nginx”时修改的default_server
/etc/nginx/sites-available/default_server
SUMMARY = "nginxconfig"
DESCRIPTION = "${SUMMARY}"
LICENSE = "CLOSED"
LIC_FILES_CHKSUM = "mychecksum"
S = "${WORKDIR}"
BBCLASSEXTEND = "nginx"
SRC_URI = " \
file://default_server \
"
do_install() {
install -d ${D}/etc/nginx/sites-available
cp -f ${WORKDIR}/default_server ${D}/etc/nginx/sites-available/
}
FILES_${PN} += "/etc/nginx/sites-available/* "
但显示错误
/meta-wmt/recipes-wmt/nginxconfig/nginxconfig.bb:
Could not inherit file classes/nginx.bbclassA
所以我错过了什么在这里我很确定nginx是存在的
1条答案
按热度按时间zbsbpyhn1#
BBCLASSEXTEND
与你试图完成的事情无关。为了覆盖另一个配方提供的文件,唯一的解决方案是覆盖安装该文件的原始过程,该文件是原始
nginx
配方的do_install
。您可以通过创建
nginx
的bbappend
文件来实现这一点:nginx_%.bbappend
。**[注意]**如果您的文件仅与
nginx
的特定版本相关,请在bbappend
文件名中指定版本。现在,你应该有这样的路径:
请注意,原始
nginx
配方的文件名为:default_server.site
,所以将文件命名为相同的名称。继续阅读,你就会知道为什么。nginx_%.bbappend
文件仅包含以下内容:这里的技巧是,原始的recipe会尝试在
FILESEXTRAPATHS
中找到default_server.site
,正如你所看到的,我们在它上面做了一个prepend
,所以包含你的自定义default_server.site
的新路径将是它搜索的第一个路径,所以它会抓取你的自定义文件。