补丁包创建器

Figure 8补丁包创建器

This tool can be opened using Applications ▸ System Tools ▸ Service Pack Creator.

补丁包是一个压缩包,包含一组包和它们的依赖关系。要更好地解释什么是补丁包,最好是显示一些使用情况。

您可以添加多个包到一个补丁包中,用逗号来分隔它们,例如 hal,gnome-power-manager

  1. 您已经安装了 Fedora 9,有七个桌面,每个需要安装 240Mb 的更新。
  2. 您有一个笔记本电脑,在下载更新前需要网络驱动,并且您还有一个类似的更新了的可以访问网络的笔记本。网络驱动需要一些依赖关系,在它们安装前会被升级。
  3. 您经常要在他人的机子上安装 Linux,您携带一张 live-cd 光盘和一个装有 240Mb Fedora-updates-SP1.servicepack 的优盘,里面包含了上星期以来全部的更新。
  4. 一个自由软件杂志想随最新的 Fedora 发行版 DVD,发布专利许可限制的多媒体插件和程序。他们想通过一种方法,甚至最不勤快的用户也可以不费多少周折完成安装。

在内部,包文件是没有压缩的 tar 包,跟它在一起的还有一个 metadata.conf 文件,这个文件是发行版的标识,以及创建时间。这确保您不会把一个 fedora-9-i386 补丁包安装到 ubuntu-intrepid-ppc 的系统中。

我们需要一个目标文件列表,因为我们不知道哪些包安装到了目标主机上,例如:

Figure 9两个计算机实例

计算机A 安装了下列包,能访问互联网。

  • glib
  • dbus
  • dbus-glib
  • libgnome

计算机 B 安装下列包,不能访问互联网。

  • glib
  • dbus
  • kdebase
  • kdeapps

计算机 B 想要一个包含新版 k3b 的补丁包,以便能够刻录 DVD-RW。

The k3b program has dependencies of dbus, dbus-glib and kdebase. Now, if we asked computer A to download k3b, it would download k3b and kdebase, but not dbus-glib. We need to provide computer A with the information about what packages computer B has got installed before we can create the service pack.

If we generate a package list on computer B, and the transfer it to computer A on a USB pendrive or CD-RW we can download the correct packages. In this case we would download k3b and dbus-glib and pack it into the new service pack.

现在,补丁包可以用优盘从 A 传给 B 了。

pkgenpack 命令行工具也可以用于创建补丁包。