optimization - 如何为 Yocto 构建组织下载和 sstate_cache?
问题描述
我倾向于为各种板和版本(相扑、战士等)构建 Yocto 版本。为了加快构建我使用单独的DL_DIR
& SSTATE_DIR
。我遵循的结构如下:
- 所有构建和板的单一下载目录(因为不同板的大多数构建使用相同的工具链)
- 为每个板单独的 sstate 缓存目录
我的问题是,我可以使用 singleSSTATE_DIR
来提高性能并减小文件夹大小吗?有人试过吗?
建议和个人经验也值得赞赏。
解决方案
DL_DIR
您可以在所有构建目录和 Yocto 版本之间共享。这些只是来源的压缩包。
您可以SSTATE_DIR
在所有构建目录之间共享,尽管它仅对共享相同 Yocto 版本的构建有益,否则根本不会提高大小或速度。这是有道理的,因为相同架构的机器(在你的情况下aarch64
)的许多本机包和“基本”目标包对于所述机器是相同的,并且将使用 shared SSTATE_DIR
。对于不匹配的案例,新条目将添加到您的SSTATE_DIR
. 当你有不同的 Yocto 版本时,一些包配方已经更新,最常见的是 glibc、binutils 和 gcc 更新。这些是几乎所有其他包配方使用的包,这实际上使得无法从早期(或更高版本)的 Yocto 版本中重新使用 sstate-cache 来用于未更改的包配方,因为它们所依赖的包配方是其中的一部分所述食谱的状态缓存。此外,Yocto 版本位于 sstate-cache 条目的文件名中,因此无论如何它们都会被重建。
推荐阅读
- python-2.7 - Python 2.7 Popen pipe 命令总是创建僵尸进程(mysqldump | gzip)
- google-sheets - Google 电子表格 - 在 while 循环中更改背景颜色
- c++ - CURL ERROR DOWNLOAD : Recv failure : 连接被重置(使用 C++)
- html - React Native HTML - 呈现线性背景渐变
- firebase - 在模拟的 Firebase 函数中运行 admin.storage().bucket(..).file(..).move() 时出现未实现的 API 错误
- kotlin - 测试是否调用嵌套方法调用时,Mockito 测试抛出“想要但未调用”
- javascript - 将 Angularjs、Nodejs 和 D3.js 定义为“技术”是否正确?
- python - Sql Location_of_2nd_Max_Logins 逻辑
- reactjs - React js错误:表单标签必须与控件相关联
- php - 在 WooCommerce 产品搜索中启用按 product_tag 搜索