我正在开发一个包含嵌入式Linux系统的硬件产品。我们在该系统上执行的大多数代码是一组Python代码,它目前有自己的Git存储库,并且版本控制得像一个正常的独立软件项目。
我被困在如何管理和版本控制操作系统配置本身。为了将操作系统加载到新构建的机器上,我们有一个存储的整个文件系统的主映像文件(一个~4GB文件备份到一个网络驱动器上)。它确实需要以这种格式安装。这使我无法对各种重要的事情进行版本控制,例如:
当我在调试我的自定义硬件时,这变得特别令人担心,因为我在没有版本控制的情况下戳和刺激配置文件。
是否有一种工具来管理像这样的OS配置,或者至少有一些我可以实现的最佳实践?我试着看过配置管理工具,我发现的所有东西都是针对IT系统管理类的应用程序来管理大量正在使用的计算机,而这些计算机并不很适合嵌入式硬件用例。我觉得我在寻找错误的东西。
发布于 2017-09-14 20:13:48
好的,您编写了一个存储在网络驱动器上的整个文件系统的主映像文件,这个文件太大了,无法放到版本控制中。我想大师的形象即使有改变也是很少改变的。
我想你在这里能做的就是用你所选择的编程语言编写一个脚本。
你可以把这个脚本和新版本的配置文件放在版本控制下,我想?那应该是你所需要的。它使嵌入式环境的可复制性,而不需要膨胀您的Git回购大二进制文件。
这里的一般策略应该是,而不是对整个二进制文件进行版本化,而是对步骤和命令进行版本化,以使映像进入所需的状态。在我们的团队中,我们定期使用大量的测试数据,这些数据被冻结在网络驱动器上,但是在我们的本地工作副本中需要一些程序。你的情况可能有点不同,但我认为这个策略也适用于你的情况。
发布于 2017-09-14 19:25:48
我建议查看一下流浪汉 & Hashicorp套房中的家族,它使用一个可版本的文本文件作为配方来指定基本映像和所有已安装的组件+构建步骤。
https://softwareengineering.stackexchange.com/questions/357404
复制相似问题