2. Anatomy of the Red Hat FTP site
In the spirit of the Linux community, Red Hat Software has made available their Linux distributions for several platforms on their FTP site. These are all available from the top distribution directory (pub/redhat/linux/). Let's have a look at the distribution tree.
2.1. Redhat 9 directories organization
The latest distribution is, as of this writing, available only for the i386 platform. The toplevel directory appears a bit shallow, given the presence of a single architecture. (pub/redhat/linux/9/en/os/ ).
i386/ |
Otherwise, the toplevel directory, for releases slightly older than 9, contains distributions for the different platforms. For example, the corresponding directory for release 7.1 of Redhat Linux, is structured this way:
alpha/ i386/ ia64/ ppc/ s390x/ |
The root of the i386 directory in a Redhat 9 distribution looks like this:
-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 |
The SRPMS directory contains the RPMS packages in source form.
The images directory contains boot and drivers floppy images that can be copied to a diskette if needed. In the 9 release, there is only one boot disk image available. This boot image is named bootdisk.img. A secondary driver disk is required beside this one if the installation is not performed directly from a CD-ROM or HD. A boot.iso file has now been added to boot a machine from the cdrom drive and start (network) installations more easily (i.e. without messing up with too many floppies). See section Installation and references therein for details and consult the README file in the directory for a more detailed explanation of the various files.
The isolinux directory contains the files needed to boot from the CD (and to rebuild bootable CDs which work the same way). This process was moved from floppy emulation to no emulation. This helps avoiding space constraints and compatibility problems.
The dosutils directory contains various programs for some other operating systems which are sometimes useful to support the installation process. An explanatory README file is included also in this case.
The listing is completed by a lot of files and the RedHat directory. The latter is the subject of the next sections while the formers have contents which will appear straightforward by simply reading their names (perhaps apart from the EULA, or End User License Agreement).
2.2. The "RedHat" directory -- the core of the distribution
The most important part of the directory tree is rooted in the RedHat directory:
drwxr-xr-x 2 root root 53248 Jun 14 03:15 RPMS drwxr-xr-x 2 root root 4096 Jun 14 04:15 base |
The RPMS directory contains the major part of the Red Hat distribution consisting of a set of RPM (Redhat Package Manager) files. An RPM package typically contains binary executables, along with relevant configuration files and documentation. See the section RPM packages for more information.
The base directory holds different files needed during the installation process, like the comps.xml file, which defines the components (groups of packages) used during the "Choose packages to install" phase. See section The comps file for more information on this file, and how to use it.
Two other important files in the base directory are hdlist and hdlist2 containing most of the header fields from all the RPMs in the RPMS directory. This means that all the interdependencies among RPM packages can be determined just by reading these files without having to read all the RPM packages which is quite convenient especially during FTP installs. Another use of these files is mapping package names to file names (eg. perl to perl-5.004-6.i386.rpm). This means that if you want to incorporate updates from RedHat (see section Including the updates) or add your own packages to the RPMS directory, you need to update hdlist and hdlist2. This is described later in Rebuilding the installer. Besides these files, the images from which the installation environment (i.e. kernel, python interpreter, anaconda, etc.) is loaded are found.
2.3. The "updates" directory
The /pub/redhat/linux/updates directory has updates for all releases of RedHat's distribution since version 3.0.3. This is the place to find software packages that have been updated for some reason or other. You should especially be aware of security updates. These are publicised on RedHat's errata page whenever a fix is available. The most important files found in the updates directory are:
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 |
The structure of each of these directories is similar to that described in the section The Redhat 9 tree. So you will find for each version, in the subdirectory en/os/ a series of subdirectories representing the various architectures and a noarch and SRPMS subdirectories, for packages which work on every architecture or are in source form respectively.
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. Differences for the 8.0 tree
The 8.0 distribution layout is almost identical to the one just described. The only major differences, in this respect, can be found in the images directory.
The images directory contains boot and drivers floppy images that can be copied to a diskette if needed. In the 8.0 release, there are three boot disk images available. The first boot image is called boot.img, and is required when installation is performed directly from a CD-ROM. If installing from a NFS mounted disk or FTP is required, the bootnet.img disk image is needed. Installs through PCMCIA adapters need the pcmcia.img floppy. See section Installation and references therein for details and consult the README file in the directory for a more detailed explanation of the various files.
2.5. Differences for the 7.x tree
The two distributions are fairly similar in this respect. The only changes which are of some interest to us (and easy to notice with a simple inspection of the main distribution tree) are represented by a missing isolinux directory and some changes in the RedHat/base directory. The first one is due to the way the installation CDs are made bootable in releases prior to 8.0 ("floppy emulation" has been superseded by "no emulation" in release 8.0), while the second is an effect of the migration of the comps file format to XML in Redhat releases after 8.0 (that's why it was renamed comps.xml). The Redhat/base/comps file is, in fact, a simple textual file with a quite inflexible syntax in releases prior to and including Redhat 7.3.
2.6. Differences for the 6.x tree
For release 6.2 ( pub/redhat/linux/6.2/en/os/), the last of the 6 series, the organization is the following (the previous releases are mostly similar if not really equal, in this respect):
alpha/ i386/ sparc/ |
While the root of the i386 directory looks like this:
-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 |
In the following paragraphs I will only list differences from the newest releases, what is not explicitly mentioned is (or is believed to be) unchanged.
The doc directory contains an abundance of information. Most importantly, the RedHat installation manual can be found in HTML format in the directory or on the Redhat website ( Redhat 6.2 Installation guide). Next, there are the reference guide and the getting started guide. The documentation for the 7.x/8.0/9 releases is on a separate CD (in a different tree, on the ftp site).
The images directory contains boot floppy images that can be copied to a diskette if needed, like for 8.0, 7.3 and 9. See section Installation and references therein for details. The misc directory contains source and executables of a number of programs needed for the installation.
The most important part of the directory tree is (again) rooted in the RedHat directory:
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 |
The RPMS directory should be already known to you. See the section RPM packages for more informations. The base directory holds different book-keeping files needed during the installation process, like for releases 7.3, 8.0 and 9. The only noticeable differences being represented by a single hdlist file and a missing stage2.img file whose functionalities should be provided by the files included in the instimage directory. This contains, in fact, a bare-bones live file system with a number of programs and shared libraries needed during the installation procedure.
The updates directory is really similar to the one described for release 9 with the only difference of having more architecture related directories.