- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个只添加一个脚本文件的简单食谱:
LICENSE = "CLOSED"
SRC_URI += "file://test.sh"
S = "${WORKDIR}"
do_install () {
mkdir -p ${D}/usr/bin
cp -r test.sh ${D}/usr/bin
}
如果我修改 test.sh 并重新运行 bitbake,它什么都不做,因为它没有意识到任何变化。有什么方法可以让配方检查 SRC_URI 文件是否有变化?如果发现更改,则重新编译。本地文件不支持 SRC_URI[md5sum]。
编辑:由于我的测试设置有些不切实际,我最初的问题有点缺陷。但它确实显示了 bitbake 中一个有趣的特性。
我在两个版本的 test.sh 之间切换,我只添加或删除了一个字符。发生的事情是这样的:
因此,如果 test.sh 更改为以前的版本,bitbake 不会注意到更改。一定有某种奇怪的缓存在某处进行。这意味着我使用的配方最初有效,但前提是对 test.sh 的更改是新的、实际的更改,而不是我用来测试配方的人为更改。
最佳答案
如前所述,更适合将配方置于版本控制之下,这样新的提交将导致状态更改和 SRCREV
因此将被更改并触发新的获取/编译/安装
我刚刚尝试了您的食谱并将其添加到我的 core-image-minimal
图像,我没有发现检测 test.sh
中的变化有任何问题。脚本。这是我使用的稍微修改过的食谱。
LICENSE = "CLOSED"
SRC_URI += "file://test.sh"
S = "${WORKDIR}"
PR = "0"
do_install () {
install -d ${D}/usr/bin
install -m 0644 test.sh ${D}/usr/bin
}
另存为test.bb
在现有层内。将此食谱添加到您的图像食谱中:
IMAGE_INSTALL += "test"
然后对图像进行 bitbake。我使用了最小的基础图像。
bitbake core-image-minimal
.
编辑 test.sh
并重新运行之前的 bitbake。您应该会看到 bitbake 将您的新脚本安装到位于 tmp/deploy/images/<your_target>/core-iamge-minimal.tar.xz
的镜像中
如果失败,那么您可以随时手动修改 PR
食谱中的值(value)。
看到您的编辑后:
So if test.sh changes to a previous version, bitbake does not notice the change. There must be some sort of weird caching going on somewhere.
bitbake 缓存所有输入,以便可以从共享状态缓存中快速提取脚本的不同迭代。您应该会在 tmp
中看到一个文件夹标有 sstate-cache
的文件夹.这是您之前编译的脚本所在的位置。简而言之 - 这是预期的行为,一切都很好。
关于yocto - 如何检测 bitbake 中本地文件的变化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52331590/
我正在尝试查找“bb.utils.contains”的文档。 我在 pokey/bitbake/lib/utils.py 中找到了代码,但该代码的文档记录很差。 例如,它接受一个名为“d”的参数。什么
我创建了新问题,因为我觉得上一个问题已经得到解答,这属于一个新的地方。 我跑 bitbake core-image-minimal我收到以下错误: ERROR: systemd-1_232-r0 do
我正在为 openembedded-classic 编写 openembedded/bitbake 配方。我的食谱 RDEPENDS 依赖于 keyutils,一切似乎都有效,除了一件事:我想将一行附
我正在尝试通过 bitbake 为 arm7a 架构构建 uclibc,但我得到以下输出 user@ubuntu:~/stuff$ bitbake -b uclibc ERROR: Unable to
我正在尝试设置bitbake工具并尝试按照教程进行操作 https://www.yoctoproject.org/docs/1.8/bitbake-user-manual/bitbake-user-m
无法运行 bitbake 命令,如果这样做我会收到以下错误 joe@joe-O-E-M:~/BeagleBone/poky-dora-10.0.1/build$ bitbake core-image-
我在 openembedded 环境中运行 bitbake,我认为它缺少 99% 的配方文件。我在我的 conf 目录中编辑了 local.conf 文件,它有一行: BBFILES := "/bla
我试图在我现有的 OE 环境中包含从当前 yocto 版本升级的 autotools,而不升级我现有的所有软件包,所以我在我的 conf 文件中添加了 yocto 作为一个层: BBLAYERS +=
我正在使用 OpenEmbedded-Core 并创建了一个优先级为 6 的自定义层。几个月的开发已经过去了,现在我想将我的层的优先级增加到 8,因为来自另一个优先级为 7 的层的附加文件干扰了附加我
我是“bitbake”方式的初学者,我想知道在以下情况下会发生什么,当构建一个包含数千个包的项目时: 您对完整图像(所有包)进行位烘烤,它成功完成。 您对包进行了更改 - 一些源代码(我们称之为包“X
我是' BitBake '的初学者。我需要修改源代码并进行构建。我发现源位于git commit id作为名称的目录中的build/tmp/work/下。我想重建源代码。所以我给了bitbake -c
谢谢阅读, 我正在一个项目中工作,我们在其中创建了一个 secimage(linux yocto 图像)。 我不熟悉那里使用的所有工具,也不熟悉要使用的技术术语。所以这个问题可能真的很愚蠢,但我无法通
元层提供配方: meta/recipes-graphics/x11-common/xserver-nodm-init.bb meta-oe 层提供配方: meta-oe/recipes-graphic
在一个项目中,我们使用项目yocto,并且我们的metas从一些远程git存储库中获取源代码。 问题在于这些存储库仅在某些特定情况/特定时间可以访问。 因此,我需要一种方法(在可用时)来获取存储库,以
我有一个 tarball src.tar.gz,它的内容被解压到 src/中,还有一个用这个命令生成的源补丁: $ diff -Nurp src/ src_mod/ > my.patch 补丁头以这三
我最近开始使用 Bitbake 来构建 Yocto。每次构建时,它都会占用更多空间,目前我的磁盘空间不足。图像不会被覆盖。为每个构建创建一组带有时间戳的新文件。我已经从 build/tmp/deplo
假设我有一个只添加一个脚本文件的简单食谱: LICENSE = "CLOSED" SRC_URI += "file://test.sh" S = "${WORKDIR}" do_install ()
我想使用 .bbappend 删除“inherit”。 例如, 在 component.bb 中: inherit something 在component.bbappend中: "remove_in
我会保持简短。我收到了一个 yocto 存储库,并被要求审核它以获取构建使用的许可证。我的最终目标是: 列出发行版使用的所有许可证(即发行版构建的所有工具和实用程序使用的许可证) 获取许可证文件的副本
我最近在运行 build-image 时开始看到这个问题编译一个 Yocto 镜像,它会在完成构建 60% 左右后锁定整个 Linux 机器,并且在记录它时,你会看到机器好像被重置了。 dmesg 日
我是一名优秀的程序员,十分优秀!