好吧,所以在第 n 次尝试追踪各种软件的依赖关系并复制各种人为所有不同的 Linux 发行版所做的工作之后,我想知道是否有更好的方法来捆绑各种软件到一个 .rpm 或 .deb 文件中以便于分发。
我目前的设置是各种工具的科学怪人,但主要是 Vagrant 和 libguestfs(从在 Fedora 中运行的源代码构建,因为实际上没有一个发行版附带它virt-diff
)。以下是我目前遵循的步骤:
- 使用 Vagrant box 或通过 live CD 创建一个基本操作系统。
- 导出
.vmdk
并调用它base-image
。 - 旋转上一个图像的精确副本并前往城镇:使用包管理器或其他方式来下载、编译和安装我需要的所有部分。再次导出
.vmdk
并调用它non-base-image
。 - 使两个基本镜像都可用于具有 libguestfs 的 Fedora 来宾操作系统。
- 用于
virt-diff
区分两个图像并将该数据转储到名为diff
. - 运行几个 ruby 脚本以将其
diff
转换为另一种格式,其中包含我需要的信息,并且没有我不喜欢的/var
. - 运行另一个脚本以生成
guestfish
带有一堆命令的命令脚本copy-out
。 - 运行
guestfish
脚本。 - 运行另一个脚本来重新生成符号链接,
diff
因为guestfish
不能这样做。 - 将生成的文件夹结构转换为 .deb 或 .rpm 文件并发布。
我想知道是否有更好的方法来做到这一点。你会认为会有,但我还没有弄清楚。