簡體   English   中英

Linux 映像的版本控制/配置管理

[英]Version Control / Configuration Management for Linux Images

我正在進行的一個項目涉及持續維護一個基本的 Linux 磁盤映像,該磁盤映像被克隆到嵌入式設備上。

現在,每次進行更改時,我們都會將我們所做的事情記錄在一個文件中,並保存一份磁盤映像的副本。 然而,作為一名軟件工程師,這與傳統做法背道而馳:使用工具來處理配置管理和控制。

是否有好的工具可以基本上在文件級別執行此操作,允許我們提交/回滾對整個系統磁盤上實際文件的更改? 或者,有什么東西可以比傳統的源代碼管理工具更好地處理大文件,而傳統的源代碼管理工具並不是專門為巨型二進制文件設計的?

在我發表評論五年后,我有了一個更好的解決方案。 Artifactory 和 Nexus 旨在作為 CI/CD 代碼管道的一部分來完成這項工作。

In my case, I use Jenkins, Artifactory, GitHub, CircleCI, and for legacy reasons Perforce, to manage a code tree of 70k+ files ( code tree not my design.) for a C++ and Javascript build.

FOSS Artifactory 非常有限,您可以使用版本控制存儲任意文件,但您不能使用讓您控制 Pipeline 的步進機制,因為它將工件從構建移動到測試...部署。

Artifactory Pro 不是免費的,但它有許多標准包的存儲庫,例如 Docker 容器、Debian、NPM、Gems 等。

我也有完全一樣的問題。 目前我的版本庫在 git 中超過 150G,從 CVS 移動。 CVS 完美地處理了小文件,但對多 G 文件猶豫不決。 所以。 萬一其他人路過,這里有一些我正在尋找的可能的解決方案:

http://git-annex.branchable.com/

https://github.com/jedbrown/git-fat

https://github.com/schacon/git-media

http://code.google.com/p/boar/

如果它可以處理 8G 文件,也可能是 Subversion。

配置管理應該以進行修改的首選形式進行。 對於磁盤映像,這意味着實際文件,以及用於構建映像的構建腳本。 這背后的原因與您首先保留歷史記錄的原因有關:

  • 確定在哪個版本中引入了錯誤或功能,以及由誰引入
  • 查看以前的版本以調試字段問題,可能會向其中添加臨時調試代碼
  • 能夠因各種原因制作分支,並在適當的時候將它們合並在一起

由於可以提取磁盤映像,因此如果僅跟蹤二進制文件,您並不會完全陷入困境,但是通過跟蹤源,這些操作會容易得多。

我們最終將關鍵文件放在源代碼控制中,而不是整個系統。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM