首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >嵌入式操作系统映像的版本控制

嵌入式操作系统映像的版本控制
EN

Software Engineering用户
提问于 2017-09-14 18:42:03
回答 2查看 777关注 0票数 3

我正在开发一个包含嵌入式Linux系统的硬件产品。我们在该系统上执行的大多数代码是一组Python代码,它目前有自己的Git存储库,并且版本控制得像一个正常的独立软件项目。

我被困在如何管理和版本控制操作系统配置本身。为了将操作系统加载到新构建的机器上,我们有一个存储的整个文件系统的主映像文件(一个~4GB文件备份到一个网络驱动器上)。它确实需要以这种格式安装。这使我无法对各种重要的事情进行版本控制,例如:

  • Python软件的安装版本。
  • Debian版本和内核版本。
  • 已安装的第三方库和硬件驱动程序。
  • 重要的系统配置文件(设备树源、rc.local等)

当我在调试我的自定义硬件时,这变得特别令人担心,因为我在没有版本控制的情况下戳和刺激配置文件。

是否有一种工具来管理像这样的OS配置,或者至少有一些我可以实现的最佳实践?我试着看过配置管理工具,我发现的所有东西都是针对IT系统管理类的应用程序来管理大量正在使用的计算机,而这些计算机并不很适合嵌入式硬件用例。我觉得我在寻找错误的东西。

EN

回答 2

Software Engineering用户

回答已采纳

发布于 2017-09-14 20:13:48

好的,您编写了一个存储在网络驱动器上的整个文件系统的主映像文件,这个文件太大了,无法放到版本控制中。我想大师的形象即使有改变也是很少改变的。

我想你在这里能做的就是用你所选择的编程语言编写一个脚本。

  • ,它从网络驱动器加载二进制文件。
  • 安装
  • 并将更改列表应用于配置文件,如果需要的话(例如,脚本可能只是将配置文件的更新版本复制到嵌入式系统,在需要时安装更新的组件版本,等等)

你可以把这个脚本和新版本的配置文件放在版本控制下,我想?那应该是你所需要的。它使嵌入式环境的可复制性,而不需要膨胀您的Git回购大二进制文件。

这里的一般策略应该是,而不是对整个二进制文件进行版本化,而是对步骤和命令进行版本化,以使映像进入所需的状态。在我们的团队中,我们定期使用大量的测试数据,这些数据被冻结在网络驱动器上,但是在我们的本地工作副本中需要一些程序。你的情况可能有点不同,但我认为这个策略也适用于你的情况。

票数 2
EN

Software Engineering用户

发布于 2017-09-14 19:25:48

我建议查看一下流浪汉 & Hashicorp套房中的家族,它使用一个可版本的文本文件作为配方来指定基本映像和所有已安装的组件+构建步骤。

的流浪汉家族

  • 流浪汉:它还允许您为您的开发和测试构建测试VM。免费,开放源码,跨平台,VCS友好,基于Ruby的
  • 封隔器:自动创建任何类型的机器映像。免费,开源,跨平台,VCS友好的JSON配置嵌入式目标使用自定义生成器
  • Terraform、Vault、Consuer&Nomad更适合于分布式和云环境。开源和企业版
票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/357404

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档