我正在寻找一种方法来生成安装脚本,将 Linux 系统的当前状态与基础映像(例如 Docker 映像)进行比较。输出将是从基础映像重新创建当前状态的操作列表 - 通常是一堆文件apt-get install
和一堆修补程序应用程序。
这可行吗?现在还有这样的事吗?
答案1
答案2
我曾经在 EMC 销售的一款灾难恢复产品 HomeBase 上工作过,它就是做这种事情的(尽管它从不支持 apt/dpkg 打包的 Linux)。让它可靠地工作是很难的。
如果您乐意重新安装同一组软件包,那么您应该能够轻松地拉出手动安装的软件包列表: https://askubuntu.com/questions/2389/generating-list-of-manually-installed-packages-and-querying-individual-packages
我不知道有什么简单的解决方案可以将 /etc 内容与基本 /etc 内容进行比较。即使这样,一些更改可能来自软件包安装,您必须小心不要多次应用这些更改。
最好的办法可能是手动重建系统,但要仔细记录所有执行的操作 - 可能使用某些版本控制系统来跟踪 /etc 更改。如果您无法手动重建,那么您可以随时考虑创建 docker 基础映像: https://docs.docker.com/articles/baseimages/