- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试删除一些附加了 GPLv3 许可的开源软件包,我们无法将其作为最终生产镜像的一部分进行分发。虽然可以在 local.conf 中使用“INCOMPATIBLE_LICENSE=GPLv3”删除这些包,但它会删除所有标记为 GPLv3 的包。我用过PREFERRED_VERSION_recipename=(GPLv2 recipe_version)并将所有 GPLv3 软件包降级为我们要推送到最终镜像中的 GPLv2。但是有几个 GPLv3 包我们想保留为调试镜像的一部分,例如 M4、make、gdb、bison。这些包不需要在最终的生产镜像中,但它们不能从构建中完全删除,因为在构建/调试期间需要它们。
那么,我如何从最终的 rootfs 镜像中删除这些包/配方,同时让它们成为构建过程的一部分并让它们构建。换句话说,我想让 bitbake 从 GPLv3 源构建它们,但让它们远离最终的 rootfs 图像。
我确实查看了 poky/lib/oe/manifest.py 和 rootfs.py 创建函数 ==> 正在创建最终 rootfs list 的位置,但无法从 bitbake 中弄清楚到底需要设置什么。是否需要覆盖 do_rootfs。如果是这样,需要设置哪些变量来覆盖最终 list 。
最佳答案
没有单一的方法可以做您想做的事。一种方法是让您的生产镜像包含您需要交付的内容,然后让您的开发镜像 require production-image.bb
。通过这种方式,您可以轻松地使用额外的包扩展开发镜像。
我遇到了类似的问题,因为我想在我的开发镜像中使用 gdbserver。 (到目前为止,在我的开发镜像中没有其他 GPLv3 是必需的/想要的)。我所做的是设置
INCOMPATIBLE_LICENSE = "GPL-3.0 LGPL-3.0 AGPL-3.0"
INCOMPATIBLE_LICENSE_pn-gdb = ""
这基本上允许构建 gdb,但没有其他 GPLv3 许可。然后,我的图片继承了一个company-image.bbclass
,而不是直接继承了image.bbclass
。在 company-image.bbclass
中,我有一个像这样的函数:
python () {
for p in d.getVar('IMAGE_INSTALL', True).split():
if p in ['gdb', 'gdbserver'] and not d.getVar('IMAGE_BASENAME', True) == 'company-dev-image':
bb.fatal("gdb/gdbserver is not allowed in this image!")
}
这将确保 gdb 和 gdbserver 只能安装在 company-dev-image
中;因此,没有将它们分发到生产镜像中的风险。
关于yocto - 如何从 bitbake 构建的最终 rootfs 镜像中删除特定包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34116799/
我正在尝试查找“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 日
我是一名优秀的程序员,十分优秀!