我有一个大约150个自定义RPM的软件套件,它们之间具有相当复杂的依赖关系:
我的持续集成机器构建我的所有软件包,并从它们创建一个yum存储库,然后旋转yum repo的ISO - 这就是我的软件的分发方式。
我的问题:我希望CI机器为ISO中的每个软件包验证其所有依赖关系是否由ISO中的其他自定义软件包或Red Hat软件包满足。这不仅可以捕获底层软件中的错误,还可以捕获那些忘记将更改推送到源代码管理中的发布分支的开发人员。
以下是我想要解决的问题(所以你们可以告诉我有更好的方法!):对于每个包,创建一个干净的虚拟机:
...并在虚拟机中调用“yum install xxx”。
问题是,这需要太长时间 - 每个软件包安装都会修改虚拟机的状态。每个RPM确实需要在“干净”的操作系统上进行测试,并重新创建每个包需要大约10分钟。我是否可以在不修改VM或每次从头开始重新创建VM的情况下测试我的软件包安装?我希望yum的“--test”命令行参数与“rpm -i --test”类似,但我没有看到。我不能直接使用“rpm”,因为它不会自动下载依赖项。
问题:
请记住我在RHEL(第3.2.22节),而不是Fedora,但EPEL可能也可以使用。
答案 0 :(得分:0)
你几乎描述了OSB:https://build.opensuse.org/
这不是特定于发行版的,你或许可以让它为你工作而不会太麻烦。
答案 1 :(得分:0)
你可以使用我写的名为mach的工具。它为分发设置了一个chroot。你可以
这比在虚拟机上进行更快。