如何在 yocto 构建的 Cstom 配方中包含文件

大家好,我是 Yocto 的新手,正在尝试构建我的第一个食谱,我有一个自定义层显示并正确安装在我的系统“colibri-imx6ull”上,但我看不到我的食谱工作的任何结果。Bitbake 似乎构建了它们,但也许我在构建过程中误解了一些东西。我的长期目标是安装 Golang 和一些自定义脚本,但目前,我什至无法复制一个简单的文本文件。


可用版本是 Toradex (2.8) v2017.12 rocko (2.4)


我已将图层添加到 oe-core/build/conf/bblayers.conf


${TOPDIR}/../layers/meta-hydroware \

我有一个可用的层配置文件


/layers/meta-hydroware/recipes-golang/conf/layer.conf

包含以下内容


BBPATH := "${BBPATH}:${LAYERDIR}"

BBFILES := "${BBFILES} ${LAYERDIR}/recipes-*/*/*.bb \ 

       ${LAYERDIR}/recipes-*/*/*.bbappend"


BBFILE_COLLECTIONS += "golang"

BBFILE_PATTERN_golang := "^${LAYERDIR}/" 

BBFILE_PRIORITY_golang := "105"

它在构建时包含在图层列表中,因此希望它能正常工作。首先,我只是想把任何东西复制到我的构建中的任何地方,我试图使用这个食谱来复制一个简单的文本文件,但它没有显示出来。


我的食谱文件“golang.bb”位于


/layers/meta-hydroware/recipes-golang/golang/golang.bb

文本文件位于


/layers/meta-hydroware/recipes-golang/golang/files

这是我的golang.bb的内容


SUMMARY = "Provides GO"

DESCRIPTION = "Tools for runnings and compiling GO"


SRC_URI =   "file://readme.txt"


LICENSE = "CLOSED"


S = "${WORKDIR}"

FILES_${PN} = ""

ALLOW_EMPTY_${PN} = "1"


do_install() {

    install -m 0755 -d ${D}${bindir} ${D}${bindir}/go

    mkdir ~/usr/bin/go

    cp -a --no-preserve=ownership ${WORKDIR}/* ${D}${bindir}/go/

}

我的目标是安装与文本文件位于同一文件夹中的 golang


 /layers/meta-hydroware/recipes-golang/golang/files/go1.11.2.linux-armv6l.tar.gz

我的第一个目标是能够在我安装的机器上的某个地方找到文本文件,第二个目标是安装 go。我的食谱有什么问题导致它无法放置文件吗?


为了处理安装 .tar.gz 文件,我还需要做任何其他事情吗?或者 do_install() 明白该怎么做?


感谢您的回答//困惑的新手,他们已经在这上面花了太多时间了 ^^


蝴蝶刀刀
浏览 156回答 1
1回答

ibeautiful

配方有多项改进,SUMMARY = "Provides GO"DESCRIPTION = "Tools for runnings and compiling GO"SRC_URI =   "file://readme.txt"LICENSE = "CLOSED"S = "${WORKDIR}"do_install() {    install -d ${D}${bindir}/go    install -Dm 0755 ${WORKDIR}/readme.txt ${D}${bindir}/go}FILES_${PN} = "${bindir}/*"如果使用 local.conf 或图像配方或此包中的IMAGE_INSTALL_append其他包直接将上述配方包含到图像中,则上述配方应该有效。RDEPENDS更正完成:你不需要允许空包FILES_${PN}应该带有您要安装的列表文件install -d创建目录并install -Dm复制它。您不需要在食谱中使用cpor 。mkdir
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go