2. Red Hat FTP 站点结构剖析

秉承 Linux 社区的精神,Red Hat 软件在其 FTP 站点上提供了适用于多个平台的 Linux 发行版。所有这些都可以在顶级发行目录 (pub/redhat/linux/) 中找到。让我们看看发行目录树。

2.1. Redhat 9 目录组织结构

截至撰写本文时,最新的发行版仅适用于 i386 平台。考虑到只有一个架构,顶层目录看起来有点浅。(pub/redhat/linux/9/en/os/ )。
 
        i386/
      

否则,对于略早于 9 的版本,顶层目录包含适用于不同平台的发行版。例如,Redhat Linux 7.1 版本的相应目录结构如下
 
        alpha/   i386/   ia64/   ppc/   s390x/
      

Redhat 9 发行版中 i386 目录的根目录结构如下
 
	-rwxr-xr-x    2 root     root          248 Mar 14  2003 autorun
	drwxr-xr-x    7 root     root         4096 Mar 14  2003 dosutils
	-rw-r--r--    3 root     root         6192 Mar 14  2003 EULA
	-rw-r--r--    3 root     root        18385 Mar 14  2003 GPL
	drwxr-xr-x    3 root     root         2048 Mar 14  2003 images
	drwxr-xr-x    2 root     root         2048 Mar 14  2003 isolinux
	-rw-r--r--    3 root     root         6127 Mar 14  2003 README
	-rw-r--r--    2 root     root        13052 Mar 14  2003 README-Accessibility
	-rw-r--r--    2 root     root         6686 Mar 14  2003 README.de
	-rw-r--r--    2 root     root         6990 Mar 14  2003 README.es
	-rw-r--r--    2 root     root         6492 Mar 14  2003 README.fr
	-rw-r--r--    2 root     root         6805 Mar 14  2003 README.it
	-rw-r--r--    2 root     root         7995 Mar 14  2003 README.ja
	-rw-r--r--    2 root     root         7312 Mar 14  2003 README.ko
	-rw-r--r--    2 root     root         5070 Mar 14  2003 README.pt
	-rw-r--r--    2 root     root         6613 Mar 14  2003 README.pt_BR
	-rw-r--r--    2 root     root         5879 Mar 14  2003 README.zh_CN
	-rw-r--r--    2 root     root         5892 Mar 14  2003 README.zh_TW
	drwxr-xr-x    4 root     root         2048 Mar 14  2003 RedHat
	-rw-r--r--    2 root     root        25824 Mar 14  2003 RELEASE-NOTES
	-rw-r--r--    2 root     root        29902 Mar 14  2003 RELEASE-NOTES-de.html
	-rw-r--r--    2 root     root        30409 Mar 14  2003 RELEASE-NOTES-es.html
	-rw-r--r--    2 root     root        32354 Mar 14  2003 RELEASE-NOTES-fr.html
	-rw-r--r--    2 root     root        30064 Mar 14  2003 RELEASE-NOTES.html
	-rw-r--r--    2 root     root        29925 Mar 14  2003 RELEASE-NOTES-it.html
	-rw-r--r--    2 root     root        34666 Mar 14  2003 RELEASE-NOTES-ja.html
	-rw-r--r--    2 root     root        33520 Mar 14  2003 RELEASE-NOTES-ko.html
	-rw-r--r--    2 root     root        29496 Mar 14  2003 RELEASE-NOTES-pt_BR.html
	-rw-r--r--    2 root     root        22747 Mar 14  2003 RELEASE-NOTES-pt.html
	-rw-r--r--    2 root     root        25217 Mar 14  2003 RELEASE-NOTES-zh_CN.html
	-rw-r--r--    2 root     root        26645 Mar 14  2003 RELEASE-NOTES-zh_TW.html
	-rw-r--r--    3 root     root         1910 Mar 14  2003 RPM-GPG-KEY
	-r--r--r--    1 root     root         1823 Mar 14  2003 TRANS.TBL
      

SRPMS目录包含源格式的 RPMS 软件包。

images目录包含启动和驱动程序软盘镜像,如果需要,可以复制到软盘。在 9 版本中,只有一个启动盘镜像可用。此启动镜像名为bootdisk.img。如果安装不是直接从 CD-ROM 或 HD 执行,则除了这个之外,还需要一个辅助驱动程序盘。现在添加了一个boot.iso文件,以便更轻松地从 cdrom 驱动器启动计算机并开始(网络)安装(即,无需处理太多软盘)。有关详细信息,请参阅 安装 部分及其中的参考资料,并查阅目录中的 README 文件以获得对各种文件的更详细说明。

isolinux目录包含从 CD 启动所需的文件(以及重建以相同方式工作的可引导 CD 所需的文件)。此过程已从软盘仿真转移到无仿真。这有助于避免空间限制和兼容性问题。

dosutils目录包含一些其他操作系统的各种程序,这些程序有时对于支持安装过程很有用。在这种情况下,还包含一个解释性的 README 文件。

列表中还包含许多文件和RedHat目录。后者是接下来几节的主题,而前者包含的内容通过简单地阅读它们的名称即可显而易见(也许除了 EULA,即最终用户许可协议之外)。

2.2. “RedHat” 目录——发行版的核心

目录树最重要的部分位于RedHat目录

 
        drwxr-xr-x    2 root     root        53248 Jun 14 03:15 RPMS
        drwxr-xr-x    2 root     root          4096 Jun 14 04:15 base
      

RPMS目录包含 Red Hat 发行版的主要部分,其中包含一组 RPM(Redhat Package Manager)文件。RPM 软件包通常包含二进制可执行文件,以及相关的配置文件和文档。有关更多信息,请参阅 RPM 软件包 部分。

base目录包含安装过程中需要的不同文件,例如comps.xml文件,该文件定义了在“选择要安装的软件包”阶段使用的组件(软件包组)。有关此文件以及如何使用它的更多信息,请参阅 comps 文件 部分。

目录中另外两个重要的文件是base目录是hdlisthdlist2,它们包含RPMS目录中所有 RPM 的大部分标头字段。这意味着只需读取这些文件即可确定 RPM 软件包之间的所有相互依赖关系,而无需读取所有 RPM 软件包,这在 FTP 安装期间尤其方便。这些文件的另一个用途是将软件包名称映射到文件名(例如,perl 映射到 perl-5.004-6.i386.rpm)。这意味着,如果您想合并来自 RedHat 的更新(请参阅 包含更新 部分)或将您自己的软件包添加到RPMS目录中,则需要更新hdlisthdlist2。稍后在 重建安装程序 中对此进行了描述。除了这些文件之外,还可以找到从中加载安装环境(即内核、python 解释器、anaconda 等)的镜像。

2.3. “updates” 目录

/pub/redhat/linux/updates目录包含自 3.0.3 版本以来所有 RedHat 发行版的更新。这是查找因某种原因或其他原因而更新的软件包的地方。您尤其应该注意安全更新。每当有修复程序可用时,这些都会在 RedHat 的勘误页上公布。在updates目录是

 
        drwxrwsr-x    3 root      root          4096 Jul 13 10:13 5.2
        drwxrwsr-x    3 root      root          4096 Jul 13 10:13 6.0
        drwxrwsr-x    3 root      root          4096 Jul 13 10:13 6.1
        drwxrwsr-x    4 root      root          4096 Jul 13 10:14 6.2
        drwxrwsr-x    4 root      root          4096 Jul 13 10:14 7.0
        drwxrwsr-x    4 root      root          4096 Jul 13 10:14 7.1
        drwxrwsr-x    4 root      root          4096 Jul 13 10:13 7.2
        drwxrwsr-x    3 root      root          4096 Jul 13 10:14 7.3
        drwxrwsr-x    3 root      root          4096 Jul 13 10:14 8.0
        drwxrwsr-x    3 root      root          4096 Jul 13 10:14 9
      

这些目录中每个目录的结构与 Redhat 9 目录树 部分中描述的结构相似。因此,对于每个版本,您都会在子目录en/os/中找到一系列代表各种架构的子目录和一个noarchSRPMS子目录,分别用于适用于每个架构或以源格式提供的软件包。

 
        drwxrwsr-x    2 root      root          4096 Sep 23 05:28 SRPMS
        drwxrwsr-x    2 root      root          4096 Aug 28 18:25 athlon
        drwxrwsr-x    2 root      root          8192 Sep 23 05:28 i386
        drwxrwsr-x    2 root      root          4096 Jul 13 10:14 i486
        drwxrwsr-x    2 root      root          4096 Aug 28 18:26 i586
        drwxrwsr-x    2 root      root          4096 Aug 28 18:26 i686
        drwxrwsr-x    2 root      root          4096 Jul 13 10:14 noarch
      

2.4. 8.0 目录树的差异

8.0 发行版布局与刚刚描述的布局几乎相同。在这方面,唯一的主要区别可以在 images 目录中找到。

images目录包含启动和驱动程序软盘镜像,如果需要,可以复制到软盘。在 8.0 版本中,有三个启动盘镜像可用。第一个启动镜像称为boot.img,当直接从 CD-ROM 执行安装时需要它。如果需要从 NFS 挂载的磁盘或 FTP 安装,则需要bootnet.img磁盘镜像。通过 PCMCIA 适配器安装需要pcmcia.img软盘。有关详细信息,请参阅 安装 部分及其中的参考资料,并查阅目录中的 README 文件以获得对各种文件的更详细说明。

2.5. 7.x 目录树的差异

在这方面,这两个发行版非常相似。唯一对我们来说有些有趣的更改(并且通过简单检查主发行目录树很容易注意到)由一个缺失的isolinux目录和RedHat/base目录中的一些更改表示。第一个是由于 8.0 之前的版本中安装 CD 的可引导方式(“软盘仿真”在 8.0 版本中已被“无仿真”取代),而第二个是 8.0 之后的 Redhat 版本中comps文件格式迁移到 XML 的结果(这就是它被重命名的原因comps.xml)。实际上,Redhat/base/comps文件是一个简单的文本文件,在 Redhat 7.3 之前的版本中,其语法非常不灵活。

2.6. 6.x 目录树的差异

对于 6.2 版本( pub/redhat/linux/6.2/en/os/),6 系列的最后一个版本,组织结构如下(之前的版本在这方面即使不是完全相同,也大多相似)

        alpha/   i386/   sparc/
      

而 i386 目录的根目录结构如下
        -rw-r--r--    1 root     root        18385 Sep  7  1999 COPYING
        -rw-r--r--    1 root     root         3400 Mar  8  2000 README
        -rw-r--r--    1 root     root        16300 Mar  8  2000 RELEASE-NOTES
        -rw-r--r--    1 root     root         1908 Sep 25  1999 RPM-GPG-KEY
        drwxr-xr-x    1 root     root          512 Sep 27 15:22 RedHat
        drwxr-xr-x    1 root     root        17408 Sep 27 15:22 SRPMS
        -rwxr-xr-x    1 root     root          538 Sep 26  1999 autorun
        -rwxr--r--    1 root     root         2048 Mar  9  2000 boot.cat
        drwxr-xr-x    1 root     root          512 Sep 27 15:22 doc
        drwxr-xr-x    1 root     root          512 Sep 27 15:22 dosutils
        drwxr-xr-x    1 root     root          512 Sep 27 15:22 images
        drwxr-xr-x    1 root     root          512 Sep 27 15:22 misc
      

在以下段落中,我将仅列出与最新版本的差异,未明确提及的内容(或被认为是)未更改。

doc目录包含大量信息。最重要的是,可以在目录中或 Redhat 网站 ( Redhat 6.2 安装指南) 上以 HTML 格式找到 RedHat 安装手册。接下来,还有参考指南和入门指南。7.x/8.0/9 版本的文档位于单独的 CD 上(在 ftp 站点上的不同目录树中)。

images目录包含启动软盘镜像,如果需要,可以复制到软盘,例如对于 8.0、7.3 和 9。有关详细信息,请参阅 安装 部分及其中的参考资料。miscmisc目录包含安装所需的一些程序的源代码和可执行文件。

目录树最重要的部分(再次)位于RedHat目录

        drwxr-xr-x   2 root     root    28672   Oct 26 09:01   RPMS
        drwxr-xr-x   2 root     root     4096   Oct 26 09:01   base
        -rw-r--r--   1 root     root        0   Jan 19  1999   i386
        drwxr-xr-x   6 root     root     4096   Oct 26 09:01   instimage
      

RPMS目录中,您应该已经知道了。有关更多信息,请参阅 RPM 软件包 部分。该base目录包含安装过程中需要的不同簿记文件,例如对于 7.3、8.0 和 9 版本。唯一值得注意的区别在于由单个hdlist文件和一个缺失的stage2.img文件表示,后者的功能应由instimage目录中包含的文件提供。实际上,这包含一个精简的 live 文件系统,其中包含安装过程中需要的一些程序和共享库。

updates目录与为版本 9 描述的目录非常相似,唯一的区别是具有更多与架构相关的目录。