Bitbake 运行时与构建依赖关系
Bitbake runtime vs build dependency
我无法理解 bitbake 食谱。 (我有一些写得不好的地方需要修改,我通常会阅读并理解整个机制,但遗憾的是我的时间很紧)。
你能帮我理解 RDEPENDS 和 DEPENDS 之间的区别吗?我阅读了参考资料,我知道它们分别代表运行时依赖性和构建依赖性,但是在 bitbake 配方中对它有什么影响?
据我了解,如果包 A 依赖于另一个 B,则必须构建 B 并准备好启用 A 来构建。 Bitbake 与运行时无关,它仅用于构建和部署包。那么有什么区别呢?
如您所说,bitbake 关注构建 和部署
包,它需要部署所有的包
需要满足目标系统上的运行时依赖性。
如果你的食谱说目标 T DEPENDS
在目标 P 上,那就说明
bitbake 它必须在 T 之前构建 P,因为 T 不能
建成 没有 P。
如果你的食谱说 T RDEPENDS
on P,那就说明
bitbake 如果它必须部署 P 到目标系统
部署 T,因为 T 不能 used 没有 P.
例如,没有 C 编译器就无法构建 tar
,但是
你不需要 C 编译器来使用 tar
。您可以部署 tar
无需部署 C 编译器。所以这是 DEPEND
.
另一方面,如果没有运行时 C 库,则无法使用 tar
。
如果部署了tar
,则还必须部署运行时C 库。
所以这是一个 RDEPEND
.
bitake 的技术细节是:
如果 T DEPENDS
在 P 则 T的do_configure
任务依赖
关于 P 的 do_populate_sysroot
任务。
如果 T RDEPENDS
在 P 则 T的do_build
任务依赖于P的
do_package_write
任务。
我无法理解 bitbake 食谱。 (我有一些写得不好的地方需要修改,我通常会阅读并理解整个机制,但遗憾的是我的时间很紧)。 你能帮我理解 RDEPENDS 和 DEPENDS 之间的区别吗?我阅读了参考资料,我知道它们分别代表运行时依赖性和构建依赖性,但是在 bitbake 配方中对它有什么影响? 据我了解,如果包 A 依赖于另一个 B,则必须构建 B 并准备好启用 A 来构建。 Bitbake 与运行时无关,它仅用于构建和部署包。那么有什么区别呢?
如您所说,bitbake 关注构建 和部署 包,它需要部署所有的包 需要满足目标系统上的运行时依赖性。
如果你的食谱说目标 T DEPENDS
在目标 P 上,那就说明
bitbake 它必须在 T 之前构建 P,因为 T 不能
建成 没有 P。
如果你的食谱说 T RDEPENDS
on P,那就说明
bitbake 如果它必须部署 P 到目标系统
部署 T,因为 T 不能 used 没有 P.
例如,没有 C 编译器就无法构建 tar
,但是
你不需要 C 编译器来使用 tar
。您可以部署 tar
无需部署 C 编译器。所以这是 DEPEND
.
另一方面,如果没有运行时 C 库,则无法使用 tar
。
如果部署了tar
,则还必须部署运行时C 库。
所以这是一个 RDEPEND
.
bitake 的技术细节是:
如果 T
DEPENDS
在 P 则 T的do_configure
任务依赖 关于 P 的do_populate_sysroot
任务。如果 T
RDEPENDS
在 P 则 T的do_build
任务依赖于P的do_package_write
任务。