Yocto:在etcdir中创建一个新目录
我是Yocto的新手, 我想在/etc中创建一个目录,并将我的服务器证书复制到该目录中。我尝试执行以下操作,但它没有在/etc中创建任何目录,但是我没有得到任何编译错误:Yocto:在etcdir中创建一个新目录,yocto,bitbake,Yocto,Bitbake,我是Yocto的新手, 我想在/etc中创建一个目录,并将我的服务器证书复制到该目录中。我尝试执行以下操作,但它没有在/etc中创建任何目录,但是我没有得到任何编译错误: DESCRIPTION = "OC sample service" SUMMARY = "Install and start a systemd service and copy server certificates" LICENSE = "MIT" SRC_URI = "file://service.tar.
DESCRIPTION = "OC sample service"
SUMMARY = "Install and start a systemd service and copy server certificates"
LICENSE = "MIT"
SRC_URI = "file://service.tar.gz"
inherit systemd
S = "${WORKDIR}/service"
SYSTEMD_PACKAGES = "${PN}"
SYSTEMD_SERVICE_${PN} = "sample.service"
SYSTEMD_AUTO_ENABLE = "enable"
INSANE_SKIP_${PN} += "installed-vs-shipped"
do_configure() {
:
}
do_compile() {
:
}
do_install() {
install -d ${D}${systemd_unitdir}/system
install -m 0755 ${S}/sample.service ${D}${systemd_unitdir}/system
mkdir -p ${D}${etcdir}/oc_certs
install -m 0755 ${S}/certs/* ${D}${etcdir}/oc_certs
}
FILES_${PN} = "${systemd_unitdir}/system
"
现在的问题是,sample.service已成功放置到该位置,但未创建/etc/oc_证书。“不起作用。”“是一个相当糟糕的错误描述,但最可能的问题是它没有包含在图像中。这是因为bitbakes打包机制不知道该目录,因此请添加以下内容:
FILES_${PN} += "${etcdir}/oc_certs"
如果您需要进一步的帮助,请分别在相应的日志中用精确的错误描述扩展您的问题。“不工作”是一个相当糟糕的错误描述,但最可能的问题是它没有包含在图像中。这是因为bitbakes打包机制不知道该目录,因此请添加以下内容:
FILES_${PN} += "${etcdir}/oc_certs"
如果您需要进一步的帮助,请用精确的错误描述扩展您的问题,分别是相应的日志。除了LetoThe2nd的答案之外:
${etcdir}
变量通常为空。如果需要/etc
的变量,则它是${sysconfdir}
。因此,您的文件可能已安装到根目录
检查bitbake-e
的输出,并尝试查找etcdir
进行验证
还可以删除INSANE\u SKIP{PN}+=“installed vs shipped”
,它隐藏了您试图查找的错误(您将看到什么安装在哪里,但没有发布)
顺便说一句,Letoth2nd的答案也是需要的,因为您正在覆盖(而不是附加
文件${PN}
,否则就不需要了。${sysconfdir}
已经是文件${PN}
的一部分,除了Letoth2nd的答案:${etcdir}
变量通常为空。如果您想要/etc
的变量,它是${sysconfdir}
。因此您的文件可能已安装到根目录
检查bitbake-e
的输出,并尝试查找etcdir
进行验证
还可以删除INSANE\u SKIP{PN}+=“installed vs shipped”
,它隐藏了您试图查找的错误(您将看到什么安装在哪里,但没有发布)
顺便说一句,LetoThe2nd的答案也是需要的,因为您正在覆盖(而不是附加
文件${PN}
,否则就不需要了。${sysconfdir}
已经是文件${PN}
您在${D}之后缺少了一个/。要在/etc文件夹中创建一个目录,比如说mydir,只需在配方的do_install()中添加以下代码
do_install() {
install -d ${D}/etc/mydir
}
${D}之后缺少一个/a。要在/etc文件夹中创建一个目录,比如说mydir,只需在配方的do_install()中添加以下代码
do_install() {
install -d ${D}/etc/mydir
}
“不工作”并不能准确解释什么不工作。如果您收到错误消息,请务必提供该消息。如果代码段未执行,请提供您正在处理的完整配方,以便我们了解它未执行的原因。通常,在提问时使用以下模式:a)您希望发生什么,特别是b)实际发生的情况,特别是Hi@AlexanderKanavin,感谢您的快速评论,我已经更新了我的问题。文件似乎仍然缺少目录。“不工作”并不能准确解释什么不工作。如果您收到错误消息,请务必提供该消息。如果代码段没有执行,那么请提供您正在处理的完整配方,这样我们就可以了解为什么它没有执行。通常,在提问时使用以下模式:a)你预计会发生什么,特别是b)实际发生了什么,特别是Hi@AlexanderKanavin,谢谢你的快速评论,我已经更新了我的问题。文件似乎仍然缺少目录。嗨,Letoth22,谢谢你的回复,我添加了文件${PN}+=“${etcdir}”/oc_certs”,但这没有帮助。嗨,Letoth22,谢谢你的回复,我添加了文件${PN}+=“${etcdir}/oc_certs”,但这没有帮助。嗯,
${sysconfdir}
包含/etc
,所以在这个问题上不需要斜杠。但是,${D}
确实不包含尾部斜杠。${sysconfdir}
包含/etc
,因此在这个特定的问题中不需要斜杠。但是,${D}
确实不包含尾部斜杠。