使用 Yocto 锁定包版本
Lock packages version with Yocto
我们即将设置生产构建服务器来维护嵌入式 linux 产品。我知道我可以在配方中指定一个带有 PREFERRED_VERSION_<package>
的包版本,但这可能需要 很多 的时间来锁定图像中的每个工具(即 grep
、strace
、ECC)。这在我们需要重建服务器的情况下很有用(我们可以备份整个服务器,但这不会被跟踪。即使将所有内容提交到 git 仓库似乎也不是那么聪明,如果我是,请纠正我错误的)。
有没有办法获得类似 package-lock.json
或图像足迹的东西?
编辑
我想要实现的是
的列表
PREFERRED_VERSION_<package0> = "xxx"
...
PREFERRED_VERSION_<packageN> = "xxx"
我可以用来在清晰的系统上复制图像(没有任何缓存文件)。似乎没有这样的命令可以直接执行此操作,而是可以通过
获取图像包和版本列表
bitbake <image> -s
并用一个简单的脚本生成我正在寻找的东西。
我们有发行版配置,您可以在其中指定所有版本首选项。例如,下面的示例是从 poky.conf and bleeding.conf
复制的
PREFERRED_VERSION_glib-2.0 ?= "2.17.4"
PREFERRED_VERSION_glib-2.0-native ?= "2.17.4"
PREFERRED_VERSION_atk ?= "1.22.0"
PREFERRED_VERSION_pango ?= "1.21.2"
PREFERRED_VERSION_gtk+ ?= "2.13.3"
require conf/distro/include/poky-floating-revisions.inc
require conf/distro/poky.conf
DISTRO = "poky-bleeding"
DISTROOVERRIDES = "poky"
因此您可以在发行版配置中定义所有 SRCREV
和 PREFERRED_VERSION
,或者编写一个单独的 distro.inc
并使用 require
添加它。并使用它进行编译,你可以定义,
DISTRO ?= "poky-bleeding"
在你的 conf/local.conf
中。通过这种方式,您可以就地控制基于 git 的配方的所有版本和 SRCREV。
我们即将设置生产构建服务器来维护嵌入式 linux 产品。我知道我可以在配方中指定一个带有 PREFERRED_VERSION_<package>
的包版本,但这可能需要 很多 的时间来锁定图像中的每个工具(即 grep
、strace
、ECC)。这在我们需要重建服务器的情况下很有用(我们可以备份整个服务器,但这不会被跟踪。即使将所有内容提交到 git 仓库似乎也不是那么聪明,如果我是,请纠正我错误的)。
有没有办法获得类似 package-lock.json
或图像足迹的东西?
编辑
我想要实现的是
的列表PREFERRED_VERSION_<package0> = "xxx"
...
PREFERRED_VERSION_<packageN> = "xxx"
我可以用来在清晰的系统上复制图像(没有任何缓存文件)。似乎没有这样的命令可以直接执行此操作,而是可以通过
获取图像包和版本列表bitbake <image> -s
并用一个简单的脚本生成我正在寻找的东西。
我们有发行版配置,您可以在其中指定所有版本首选项。例如,下面的示例是从 poky.conf and bleeding.conf
复制的PREFERRED_VERSION_glib-2.0 ?= "2.17.4"
PREFERRED_VERSION_glib-2.0-native ?= "2.17.4"
PREFERRED_VERSION_atk ?= "1.22.0"
PREFERRED_VERSION_pango ?= "1.21.2"
PREFERRED_VERSION_gtk+ ?= "2.13.3"
require conf/distro/include/poky-floating-revisions.inc
require conf/distro/poky.conf
DISTRO = "poky-bleeding"
DISTROOVERRIDES = "poky"
因此您可以在发行版配置中定义所有 SRCREV
和 PREFERRED_VERSION
,或者编写一个单独的 distro.inc
并使用 require
添加它。并使用它进行编译,你可以定义,
DISTRO ?= "poky-bleeding"
在你的 conf/local.conf
中。通过这种方式,您可以就地控制基于 git 的配方的所有版本和 SRCREV。