好吧,所以在第 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 文件并发布。
我想知道是否有更好的方法来做到这一点。你会认为会有,但我还没有弄清楚。