【发布时间】:2014-01-28 23:21:12
【问题描述】:
好吧,所以在第 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 文件并发布。
我想知道是否有更好的方法来做到这一点。你会认为会有,但我还没想出来。
【问题讨论】:
-
因此,您需要一个包含所有依赖项的单个文件安装程序,例如
Google Chrome、Opera。我对吗 ?。您对便携式应用程序(或便携式目录)感兴趣吗? -
@totti:理想情况下是一个类似 chroot 的环境,可以在任何兼容的 linux 环境上发布和运行。
标签: linux build debian rpm isolation