好吧,在尝试了第n次追踪各种软件的依赖关系并复制了各种人对所有不同linux发行版所做的工作之后,我想知道是否有更好的方法来捆绑各种软件将软件分为一个.rpm或.deb文件,以便于分发。
我目前为此目的设置的是一个弗兰肯斯坦怪兽,它使用各种工具,但主要是Vagrant和libguestfs,它们是从Fedora中运行的源代码构建的,因为实际上没有发行版附带virt-diff
。这是我当前要执行的步骤:
.vmdk
并命名为base-image
。.vmdk
并将其命名为non-base-image
。virt-diff
区分两个图像并将该数据转储到名为diff
的文件中。diff
按摩为另一种格式,该格式包含我需要的信息,并且没有一个我不喜欢/var
中的内容。guestfish
命令为copy-out
生成脚本。guestfish
脚本。diff
重新生成符号链接,因为guestfish
无法执行。我想知道是否有更好的方法可以做到这一点。您以为会有,但我还没有弄清楚。
我肯定会考虑以下方面:
A)
或B)
如上所述的前两个步骤,然后将rpm包装到一个档案文件中,构建一个包含以上所有内容的软件包,并开始实际安装rpm(沿着rpm -Uvh / tmp / repo / *行),后期脚本(可能在清理阶段)。 Dunno,如果可以这样做,可以避免在rpm数据库上锁定。
[我认为您已经达到了复杂性的地步-的确是一个科学怪人-在这里,您应该避免担心制作带有依赖项的适当程序包。我们在之前的工作中做到了这一点-我们有一组预制的rpm程序包-它非常简单明了,包括:
主要有3个步骤来制作具有所有依赖性的程序包(将其设为A,B和C)。
主要是确保您的客户已安装运行包所需的所有标准上游发行版包吗?
因此您的客户永远不会安装任何其他软件,这些软件可能会指定您要遍历的依赖关系的不同版本,对吧?