Penguin
Diff: HowToRedHatCDHOWTO
EditPageHistoryDiffInfoLikePages

Differences between current version and predecessor to the previous major change of HowToRedHatCDHOWTO.

Other diffs: Previous Revision, Previous Author, or view the Annotated Edit History

Newer page: version 4 Last edited on Tuesday, October 26, 2004 4:44:06 pm by AristotlePagaltzis
Older page: version 3 Last edited on Saturday, January 10, 2004 4:14:26 am by UserIde Revert
@@ -1,1368 +1 @@
-  
-  
-Burning a !RedHat CD HOWTO  
-  
-  
-  
-----  
-  
-!!!Burning a !RedHat CD HOWTO  
-  
-!!Morten Kjeldgaard, mok@imsb.au.dk and Peter von der Aheacute, pahe+rhcd@daimi.au.dk$Date: 2000/03/02 16:28:37 $ $Revision: 1.34 $  
-  
-  
-----  
-''This document describes how to make your own CDs from the Red Hat Linux  
-distribution equivalent to the ones commercially available from Red Hat.  
-The structure of the distribution is described, as well as the procedure  
-needed to include updated RPMS into the distribution. Prerequisites are a  
-good network connection, and a CD-writer.''  
-----  
-  
-  
-  
-  
-!!1. Introduction  
-  
-  
-  
-  
-!!2. Anatomy of the Red Hat FTP site  
-  
-  
-*2.1 The top level directory  
-  
-*2.2 The "!RedHat" directory -- the core of the distribution  
-  
-*2.3 The "updates" directory  
-  
-  
-  
-  
-  
-!!3. RPM packages  
-  
-  
-  
-  
-!!4. Obtaining your local copy of the distribution  
-  
-  
-  
-  
-!!5. Incorporating the updates  
-  
-  
-*5.1 Correcting the file protection modes  
-  
-*5.2 Replacing the updated RPMS  
-  
-*5.3 Generating a new hdlist file  
-  
-*5.4 The comps file  
-  
-  
-  
-  
-  
-!!6. At last: burning the CD  
-  
-  
-*6.1 Creating a bootable CD  
-  
-  
-  
-  
-  
-!!7. Installing from the CD  
-  
-  
-*7.1 Booting from a bootable CD  
-  
-  
-  
-  
-  
-!!8. Other Linux distributions  
-  
-  
-  
-  
-!!9. This document...  
-  
-  
-*9.1 Related documentation  
-  
-*9.2 Acknowledgements  
-  
-  
-  
-  
-  
-!!10. DISCLAIMER  
-----  
-  
-!!1. Introduction  
-  
-  
-  
-  
-  
-There may be several reasons for making your own CD. Perhaps you're a  
-cheapskate and want to save the $50 cost of the  
-Red Hat distribution. Or, perhaps you  
-want a distribution CD containing the latest distribution with all current  
-updates. This is highly relevant, because after each major release of the  
-Red Hat distribution, there have been loads of updates, several of which  
-are security related. Just take a look at the  
-errata page.  
-  
-  
-  
-----  
-  
-!!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.  
-  
-  
-  
-  
-!! 2.1 The top level directory  
-  
-  
-  
-  
-  
-  
-The toplevel directory for !RedHat Linux release 6.1 (  
-pub/redhat/redhat-6.1) contains distributions for the different  
-platforms, and a directory containing updates and corrections to program  
-packages that have been published since the release.  
-  
-  
-  
-  
-  
-SRPMS/ alpha/ i386/ sparc/ iso/  
-  
-  
-  
-  
-In this document, we use the i386 distribution as an example. The  
-procedure given in this document is likely to work on all platforms  
-supported by Red Hat (Alpha, SPARC, ppc, etc.), but we have only tested it  
-on the i386 platform (the authors would be most interested in additional  
-information). The root of the i386 directory looks like this:  
-  
-  
-  
-  
-  
--rw-r--r-- 1 root root 18391 Mar 19 1999 COPYING  
--rw-r--r-- 1 root root 3409 Sep 26 01:12 README  
--rw-r--r-- 1 root root 1908 Sep 25 18:20 RPM-GPG-KEY  
-drwxr-xr-x 5 root root 4096 Oct 26 09:01 !RedHat/  
--rwxr-xr-x 1 root root 538 Sep 26 04:16 autorun  
--rwxr--r-- 1 root root 2048 Sep 30 20:00 boot.cat  
-drwxr-xr-x 7 root root 4096 Oct 26 09:01 doc/  
-drwxr-xr-x 6 root root 4096 Oct 26 09:01 dosutils/  
-drwxr-xr-x 2 root root 4096 Oct 26 09:01 images/  
--rw-r--r-- 1 root root 391123 Jan 5 09:05 ls-lR  
--rw-r--r-- 1 root root 51786 Jan 5 09:05 ls-lR.gz  
-drwxr-xr-x 4 root root 4096 Oct 26 09:01 misc/  
-  
-  
-  
-  
-The doc directory contains an abundance of information. Most  
-importantly, the !RedHat installation manual can be found in HTML format in  
-the directory  
-doc/rhmanual/manual/. Next, there is a number of FAQs, and finally,  
-the entire collection of HOWTOs and mini-HOWTOs.  
-  
-  
-The images directory contains boot floppy images that must be copied  
-to a diskette. In the most recent distribution (6.1), there are two disk  
-images available. The boot image is called boot.img, which is required  
-when installation is performed directly from a CD-ROM. If installation  
-from a local hard disk, NFS mounted disk or FTP is required, the  
-supplementary disk image supp.img might be needed. See section  
-Installing from the CD and references therein for  
-details.  
-  
-  
-The misc directory contains source and executables of a number of  
-programs needed for the installation. Finally, the iso directory  
-contains iso9660 images just like the one you we about to make.  
-  
-  
-  
-  
-  
-  
-  
-!!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 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 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 book-keeping files needed during  
-the installation process, e.g. the comps 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. Another important  
-file in the base directory is the hdlist file 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 hdlist without having to read all the  
-RPM packages which is quite convenient especially during FTP installs.  
-  
-  
-Another use of hdlist is mapping package names to file name,  
-eg. perl to perl-5.004-6.i386.rpm. This means that if you  
-want to incorporate updates from !RedHat (see section  
-Incorporating the updates) or add your own  
-packages to the RPMS directory, you need to update hdlist.  
-This is descriped later in  
-Generating a new hdlist file.  
-  
-  
-The instimage directory contains a bare-bones live file system with a  
-number of programs and shared libraries needed during the installation  
-procedure.  
-  
-  
-  
-  
-!!2.3 The "updates" directory  
-  
-  
-  
-  
-  
-  
-The /pub/redhat/updates directory has updates for all releases of  
-!RedHat's distribution since version 3..3. This is the place to find  
-software packages that have been uppdated 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:  
-  
-  
-  
-  
-  
-drwxrwxr-x 8 ftpuser ftpusers 8192 Aug 18 08:05 5.1/  
-drwxrwxr-x 9 ftpuser ftpusers 8192 Sep 18 08:07 5.2/  
-drwxrwxr-x 9 ftpuser ftpusers 8192 Jan 7 23:09 6./  
-drwxrwxr-x 9 ftpuser ftpusers 8192 Jan 7 23:09 6.1/  
-lrwxrwxrwx 1 ftpuser ftpusers 3 Aug 25 13:14 current -> 6.1/  
-  
-  
-  
-  
-The structure of each of these directories is similar to  
-that described in section  
-The top level directory  
-  
-  
-  
-  
-  
-----  
-  
-!! 3. RPM packages  
-  
-  
-  
-  
-  
-The major part of the Red Hat distribution consists of a set of RPM (Redhat  
-Package Manager) files. An RPM package typically contains binary  
-executables, along with relevant configuration files and documentation.  
-The  
-rpm program is a powerful  
-package manager, which can be used to install, query, verify, update, erase  
-and build software packages in the RPM format. Rpm convieniently  
-maintains a database of all the software packages it has installed, so  
-information on the installed software is available at any time.  
-  
-  
-The binary RPM files in the distribution have been built on a system  
-running the distribution itself. This is important, because most of the  
-programs in the packages rely on shared libraries. From !RedHat version 5.,  
-the new version 2 of the GNU standard C library (which is 64-bit clean) has  
-been used. This version of the library is commonly referred to as  
-glibc or in Linux: libc 6. All executables in the  
-distribution have been linked against this library. If you attempt to  
-install binary files from a different distribution, chances are that  
-they will not work, unless you install the libc5 package for backwards  
-compability.  
-  
-  
-The names of the RPM packages contain the suffix .''arch''.rpm,  
-where ''arch'' is the architechture, having the value i386 for Intel  
-platform binaries. The packages you install must match the versions of the  
-shared libraries available on the machine. The  
-rpm program is usually quite good at  
-ensuring that this is indeed the case, however, there are ways around this  
-check, and you should be sure that you know what you are doing if you force  
-installation of packages this way. However, using the !RedHat installation  
-boot disk, it is ensured that the correct set of RPM packages are installed  
-on the machine.  
-  
-  
-If you discover an RPM package that was not installed on your system during  
-the installation process, don't despair. At any time, you may (as root)  
-install RPM packages, for example:  
-  
-  
-  
-  
-  
-rpm --install !WindowMaker-.18-1b.i386.rpm  
-  
-  
-  
-  
-You can even install directly from the Internet, if you know the URL of an  
-RPM package:  
-  
-  
-  
-  
-  
-rpm --install ftp://rufus.w3.org/redhat-contrib/noarch/mirror-2.9-2.noarch.rpm  
-  
-  
-  
-  
-Another version of the RPM packages contain the original sources used to  
-build the binaries. These packages have the suffix .src.rpm and  
-are situated in the SRPMS directory. These packages are not needed on  
-the installation CD, and in fact, there is not even enough disk space on an  
-74 minute burnable CD to accomodate them. Of course, you can make a  
-separate CD with the SRPMS.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!4. Obtaining your local copy of the distribution  
-  
-  
-  
-  
-  
-You need a copy of the distribution on a writable disk which is accessible  
-from the computer having the CD writer (duh!). If you want to incorporate  
-the latest updates, this directory should (also) be accessible from from a  
-Linux machine, either from a local disk, an NFS mounted disk on a different  
-computer, or a JAZ disk.  
-  
-  
-You could copy the distribution from a !RedHat CD, or you could get it via  
-FTP. If you choose to use FTP, the best way to get a correct copy of the  
-distribution is to use the mirror package.  
-  
-  
-Mirror is a sophisticated perl script that compares the content of a  
-directory on a remote site with a local directory. It will use FTP to fetch  
-the files that are on the remote site but not the local site, and delete  
-files on the local site that are not on the remote site. The mirror program  
-is configured with a configuration file. The mirror package is available  
-as an RPM from  
-rufus.w3.org.  
-  
-  
-Make your local copy mirror.redhat of the mirror configuration file, and  
-edit the relevant fields at the top of the file. After the default section,  
-define these packages:  
-  
-  
-  
-  
-  
-package=updates  
-site=ftp.sunsite.auc.dk  
-exclude_patt=(alpha/|sparc/|SRPMS/)  
-remote_dir=/disk1/ftp.redhat.com/pub/redhat/updates/6.1  
-local_dir=/jaz/updates/6.1  
-package=dist  
-site=ftp.sunsite.auc.dk  
-exclude_patt=(alpha/|sparc/|SRPMS/|iso/)  
-remote_dir=/disk1/ftp.redhat.com/pub/redhat/redhat-6.1  
-local_dir=/jaz/redhat-6.1  
-  
-  
-  
-  
-The following command will download a copy of the entire !RedHat tree on  
-your local disk. ''*Think*'' before you do this, you are about to transfer  
-approximately 500Mb of data!  
-  
-  
-  
-  
-  
-mirror -pdist mirror.redhat  
-  
-  
-  
-  
-This will mirror the Red Hat FTP site on your local disk. The content of a  
-Red Hat distribution does not change between releases, so you only need to  
-download this package ''ONCE''. All changes to the distribution are in the updates directory. Thus, if you want to keep an up-to-date mirror of the  
-Red Hat distribution, you only need to keep the updates directory  
-current. This is done using the command  
-  
-  
-  
-  
-  
-mirror -pupdates mirror.redhat  
-  
-  
-  
-  
-You can run this regularly, say, once a week, through a cron script. The  
-!RedHat distribution is available on a great number of FTP servers around  
-the world, which are updated daily from the master site at  
-ftp://ftp.redhat.com/pub. You should choose an FTP site close to  
-you, see the  
-!RedHat list of mirror sites.  
-  
-  
-  
-----  
-  
-!! 5. Incorporating the updates  
-  
-  
-  
-  
-  
-To incorporate the updates, you need write access to the distribution  
-directory from a Linux machine, with a working version of  
-rpm installed. There are three steps  
-involved:  
-  
-  
-  
-  
-  
-#Correct the file protection modes.  
-#  
-  
-#Replace updated RPMs.  
-#  
-  
-#Generate the hdlist file  
-#  
-  
-  
-  
-If you maintain a mirror of the updates directory, you can at any time  
-produce a CD including the current updates by repeating these steps.  
-  
-  
-  
-  
-!!5.1 Correcting the file protection modes  
-  
-  
-  
-  
-  
-  
-During the installation process, some programs are run directly off the CD.  
-Unfortunately, the FTP program does not always preserve the protection  
-modes of the files and directories that are copied. Therefore, it is  
-necessary to make sure that execute permission is given to programs, shell  
-scripts and shared libraries, before the directory is burned on the  
-CD. This is done by running the updatePerm script on your local copy of  
-the distribution:  
-  
-  
-  
-----  
-  
-#!/bin/bash  
-RHVERSION=6.1  
-LIST=/tmp/er3hd3w25  
-RHROOT=/jaz/redhat-${RHVERSION}  
-# Find all directories, and make sure they have +x permission  
-find $RHROOT -type d -exec chmod -c 755 {} \;  
-# Find all files that are executables, shell, python or perl scripts  
-find $RHROOT -type f | file -f - | grep -v RPM \  
-| egrep -i 'executable|perl|bourne|shell|python' | cut -f1 -d: > $LIST  
-# ====> NEEDED FOR !RedHat 6.1 ^^^^^^^  
-# Find shared libraries  
-find $RHROOT -name \*.so >> $LIST  
-# Make them executable  
-while read file  
-do  
-if [[ ! -x $file ] ; then  
-chmod -c 755 $file  
-fi  
-done < $LIST  
-/bin/rm $LIST  
-exit  
-  
-----  
-  
-  
-  
-  
-!!5.2 Replacing the updated RPMS  
-  
-  
-  
-  
-  
-  
-The following script called updateCD copies all files from the update  
-directory to the RPMS directory. The script uses some nifty rpm tricks to  
-determine what packages in the updates directory are more recent. Older  
-packages are moved to the ${OLD} directory.  
-  
-  
-  
-----  
-  
-#! /bin/bash  
-# This script updates rpms in a !RedHat distribution found in $RPMDIR.  
-# The old rpms will be placed in $OLDDIR.  
-# The new rpms should be located in $UPDDIR.  
-# The new images are in $IMGDIR  
-# The images to be updated are in $OMGDIR  
-# The architechture is $ARCH.  
-RHVERSION=6.1  
-ARCH=i386  
-RHROOT=/jaz/redhat-${RHVERSION}  
-RPMDIR=${RHROOT}/${ARCH}/!RedHat/RPMS  
-UPDDIR=${RHROOT}/updates/${ARCH}  
-IMGDIR=${RHROOT}/updates/images/${ARCH}  
-OMGDIR=${RHROOT}/${ARCH}/images  
-OLDDIR=${RHROOT}/old  
-if [[ ! -d $OLDDIR ] ; then  
-echo making directory $OLDDIR  
-mkdir $OLDDIR  
-fi  
-allow_null_glob_expansion=1  
-for rpm in ${UPDDIR}/*.rpm ; do  
-NAME=`rpm --queryformat "%{NAME}" -qp $rpm`  
-unset OLDNAME  
-for oldrpm in ${RPMDIR}/${NAME}*.rpm ; do  
-if [[ `rpm --queryformat "%{NAME}" -qp $oldrpm` = "$NAME" ]; then  
-OLDNAME=$oldrpm;  
-break  
-fi  
-done  
-if [[ -z "$OLDNAME" ]; then  
-echo $NAME is new  
-cp -pv $rpm $RPMDIR  
-else  
-if [[ `basename $rpm` != `basename $OLDNAME` ]; then  
-mv $OLDNAME $OLDDIR  
-cp -pv $rpm $RPMDIR  
-fi  
-fi  
-done  
-# Copy new boot image files to the right place...  
-for newfile in ${IMGDIR}/* ; do  
-file=${OMGDIR}/$(basename ${newfile})  
-if [[ $newfile -nt $file ] ; then  
-cp -pv $newfile $file  
-fi  
-done  
-exit  
-  
-----  
-  
-  
-  
-  
-  
-  
-  
-!Important note for !RedHat 6., 6.1  
-  
-  
-  
-  
-  
-Certain RPMs, specifically the kernel and kernel-smp packages, include the  
-platform in the filename but not in the package name. For example, the  
-"kernel" package comes in several flavors:  
-  
-  
-  
-  
-  
-kernel-2.2.5-22.i386.rpm  
-kernel-2.2.5-22.i586.rpm  
-kernel-2.2.5-22.i686.rpm  
-  
-  
-  
-  
-but for all three rpm -qp returns just "kernel" for the package name.  
-  
-  
-As you can see, this "outsmarts" the updateCD script. The  
-result is that only the last one gets properly copied. The first two get  
-copied, but are then moved to the $OLD directory! Preferably, !RedHat should  
-name these differently. But for now, the easy solution is to move the  
-packages by hand, after running updateCD. (Thanks to Kyle  
-B. Ferrio <kyle@U.Arizona.EDU>)  
-  
-  
-Joshua Sarro <mthed@shore.net> has contributed a perl script called  
-updateMirror.pl which can deal with the situation. You can  
-fetch it here:  
-http://imsb.au.dk/~mok/linux/doc/updateMirror.pl.  
-  
-  
-  
-  
-  
-  
-  
-!! 5.3 Generating a new hdlist file  
-  
-  
-  
-  
-  
-  
-When installing from the CD, the installation program on the CD relies on  
-the file !RedHat/base/hdlist describing what RPM  
-packages are available on the CD. The hdlist file can  
-be generated by the program  
-misc/src/install/genhdlist. This program must be run  
-with the absolute path to the root of the distribution as the only  
-argument. Here is the updateHdlist script which calls that program:  
-  
-  
-  
-----  
-  
-#!/bin/bash  
-RHVERSION=6.1  
-ARCH=i386  
-echo generating hdlist...  
-RHROOT=/jaz/redhat-${RHVERSION}  
-GENHDDIR=${RHROOT}/${ARCH}/misc/src/install  
-chmod u+x ${GENHDDIR}/genhdlist  
-chmod 644 ${RHROOT}/${ARCH}/!RedHat/base/hdlist  
-${GENHDDIR}/genhdlist ${RHROOT}/${ARCH} || echo "*** GENHDLIST FAILED ***"  
-exit  
-  
-----  
-  
-  
-NOTE: After having incorporated the updates in the main  
-!RedHat/RPMS directory, your copy of the distribution  
-is no longer a mirror of the Red Hat distribution site. Actually, it is  
-more up-to-date! Therefore, if you attempt to mirror the distribution,  
-older versions of the RPM's that have been updated will be downloaded once  
-more, and the updates deleted.  
-  
-  
-  
-  
-!Important note for !RedHat 6.1  
-  
-  
-  
-  
-  
-The installation in !RedHat 6.1 is completely changed from earlier versions,  
-and !RedHat have introduced a system called ``anaconda''. The  
-genhdlist program is now found in a different place, so in the  
-script above, use  
-  
-  
-  
-----  
-  
-GENHDDIR=${RHROOT}/${ARCH}/misc/src/anaconda/utils  
-  
-----  
-  
-  
-The updatePerm script must be changed to include ``python'' in line  
-13. This ''has'' been done in the listing above, but if you've cut the  
-script from earlier versions of this document (before 1.30), you need to  
-make the change!  
-  
-  
-In some cases, genhdlist fails to run, because the  
-executable is not statically linked. In such a case, you can add a new line  
-${RHROOT}/${ARCH}/!RedHat/instimage/usr/lib in  
-/etc/ld.so.conf and run ldconfig  
--v.  
-  
-  
-Another solution is to recompile genhdlist. The  
-following modification to the updateHdlist script worked under !RedHat  
-5.2:  
-  
-  
-  
-----  
-  
-#!/bin/bash  
-RHVERSION=6.1  
-ARCH=i386  
-RHROOT=/misc/redhat/redhat-${RHVERSION}  
-GENHDDIR=${RHROOT}/${ARCH}/misc/src/anaconda/utils  
-echo Compiling genhdlist...  
-sed -e 's/FD_t/int/' \  
--e 's/fdOpen/open/' \  
--e 's/fdClose/close/' \  
--e 's/fdFileno//' < ${GENHDDIR}/genhdlist.c > /tmp/genhdlist.c  
-cc -o /tmp/genhdlist -I/usr/include/rpm /tmp/genhdlist.c -lrpm -lz  
-echo generating hdlist...  
-chmod 644 ${RHROOT}/${ARCH}/!RedHat/base/hdlist  
-/tmp/genhdlist ${RHROOT}/${ARCH} || echo "*** GENHDLIST FAILED ***"  
-exit  
-  
-----  
-  
-  
-In this version of the script, a copy of the C source of  
-genhdlist.c is piped through  
-sed to create a copy in /tmp  
-that will compile under !RedHat 5.2. This version of  
-genhdlist is then used to create the  
-hdlist file  
-  
-  
-  
-  
-!Important note for !RedHat 5.2  
-  
-  
-  
-  
-  
-As distributed with !RedHat version 5.2 and earlier,  
-genhdlist CRASHES if there are files in the  
-!RedHat/RPMS directory which are ''not'' RPM  
-files! This causes problems, because in the 5.2 distribution, there are a  
-couple of non-RPM files named ls-lR and ls-lR.gz in  
-!RedHat/RPMS. Therefore, you must remove all non-RPM  
-files from the directory. Alternatively, you can apply the following patch  
-to misc/src/install/genhdlist.c and do a make. The  
-patch will cause genhdlist to ignore any non-RPM files.  
-  
-  
-  
-----  
-  
-*** genhdlist.c.orig Fri Nov 27 12:08:13 1998  
---- genhdlist.c Fri Nov 27 12:08:20 1998  
-***************  
-*** 12,23 ****  
---- 12,26 ----  
-#define FILENAME_TAG 1000000  
-+ /* Not used apparently...  
-+  
-int tags[[] = { RPMTAG_NAME, RPMTAG_VERSION, RPMTAG_RELEASE, RPMTAG_SERIAL,  
-RPMTAG_FILENAMES, RPMTAG_FILESIZES, RPMTAG_GROUP,  
-RPMTAG_REQUIREFLAGS, RPMTAG_REQUIRENAME, RPMTAG_REQUIREVERSION,  
-RPMTAG_DESCRIPTION, RPMTAG_SUMMARY, RPMTAG_PROVIDES,  
-RPMTAG_SIZE, RPMTAG_OBSOLETES };  
-int numTags = sizeof(tags) / sizeof(int);  
-+ */  
-int main(int argc, char ** argv) {  
-char buf[[300];  
-***************  
-*** 26,34 ****  
---- 29,39 ----  
-struct dirent * ent;  
-int fd, rc, isSource;  
-Header h;  
-+ /* not used  
-int count, type;  
-int i;  
-void * ptr;  
-+ */  
-if (argc != 2) {  
-fprintf(stderr, "usage: genhdlist <dir>\n");  
-***************  
-*** 74,79 ****  
---- 79,85 ----  
-rc = rpmReadPackageHeader(fd, &h, &isSource, NULL, NULL);  
-+ if (!rc) {  
-headerRemoveEntry(h, RPMTAG_POSTIN);  
-headerRemoveEntry(h, RPMTAG_POSTUN);  
-headerRemoveEntry(h, RPMTAG_PREIN);  
-***************  
-*** 110,115 ****  
---- 116,122 ----  
-headerWrite(outfd, h, HEADER_MAGIC_YES);  
-headerFree(h);  
-close(fd);  
-+ }  
-}  
-errno = ;  
-  
-----  
-  
-  
-  
-  
-!! 5.4 The comps file  
-  
-  
-  
-  
-  
-  
-The comps file defines how the packages are bundled during the  
-installation. In the Red Hat distribution, this is done according to the  
-functionality they provide, for example:  
-  
-  
-  
-  
-  
-*Printer Support  
-*  
-  
-*X Window System  
-*  
-  
-*GNOME  
-*  
-  
-*KDE  
-*  
-  
-*Mail/WWW/News Tools  
-*  
-  
-*...  
-*  
-  
-*Kernel Development  
-*  
-  
-*Extra Documentation  
-*  
-  
-  
-  
-Sometime during the installation process, the user is presented with a  
-dialog called "Components to install". Some of the components have been  
-preselected, and others not. The last item on the components list is called  
-"Everything". According to the Red Hat documentation, selecting every  
-package will require close to 1 Gb of free disk space.  
-  
-  
-On the dialog box, there also is an option that enables the user to  
-customize exactly what packages will be installed. Customizing the  
-installation by hand, or selecting "Everything" in the components list is  
-the only way to have your own packages installed unless you modify the  
-!RedHat/base/comps file.  
-  
-  
-  
-  
-!Format of comps file in !RedHat versions < 6.1  
-  
-  
-  
-  
-  
-The format of the comps file currently starts with a  
-header describing the version of the comps format, followed by an empty  
-line.  
-  
-  
-  
-  
-  
-.1  
-<empty line>  
-  
-  
-  
-  
-After this, the components are listed, separated by empty lines:  
-  
-  
-  
-  
-  
-<component 1>  
-<empty line>  
-<component 2>  
-<empty line>  
-.  
-.  
-<component n>  
-<empty line>  
-EOF  
-  
-  
-  
-  
-Each component has the following definition:  
-  
-  
-  
-  
-  
-(|1) (--hide)? <name>  
-<RPM 1>  
-<RPM 2>  
-...  
-<RPM n>  
-end  
-  
-  
-  
-  
-Before the name of each component, 0 or 1 is given. A value of 1 here means  
-that the component is chosen by default, and 0 means it's not. The option  
-"--hide" means that you will not see the entry, unless you choose "expert"  
-installation. The first component is called "Base", and that is special, in  
-the sense that it ''must'' be present and it does not show up in the  
-dialog (you can't deselect the base installation, which makes sense...)  
-  
-  
-Next follows a list of rpm packages belonging to that component. Note that  
-this is the package name stored ''in the rpm file'', and ''not''  
-any part of the file name of the package (although it is often the same).  
-  
-  
-By adding your packages to the comps file, you can  
-customize your own distribution, and make sure that your packages will be  
-installed by default. One thing to be careful about is interdependence  
-among your packages, but here, you are on your own :-) A word of warning:  
-be careful not to add or remove extra whitespace in the file. Examine the  
-existing comps file (make a copy of the original) to  
-see how it's done (or check  
-i386/misc/src/install/pkgs.c if you want to see how  
-the file is parsed).  
-  
-  
-  
-  
-!Format of comps file in !RedHat version 6.1  
-  
-  
-  
-  
-  
-With !RedHat version 6.1, the format of the comps file  
-has changed. We have not yet disected it to discover the file format. With  
-the above information, however, it should be easy enough to do it  
-yourself. The decoding takes place in  
-${RHROOT}/${ARCH}/misc/src/anaconda/comps.py.  
-  
-  
-  
-  
-  
-  
-----  
-  
-!!6. At last: burning the CD  
-  
-  
-  
-  
-  
-As we assume that you have a working CD-writer on your system, and you know  
-how to use it, we wont go into much detail about burning the CD. If you are  
-burning your CD on a Linux system, you can install the excellent  
-XCDroast  
-package. In XCDRoast, switch on the Rock Ridge extensions, and  
-the creation of a TRANS.TBL file.  
-  
-  
-Make sure the ''top'' directory of the CD contains at least the  
-following files and directories:  
-  
-  
-  
-  
-  
-COPYING RPM-PGP-KEY README !RedHat/  
-  
-  
-  
-  
-The following directories might come in handy:  
-  
-  
-  
-  
-  
-doc/ gnome/ misc/ dosutils/ images/  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!! 6.1 Creating a bootable CD  
-  
-  
-  
-  
-  
-  
-Since XCDroast doesn't support creation of bootable disks you'll need to  
-use other tools, for example  
-mkisofs  
-(  
-RPMs). and  
-  
-cdrecord. (  
-RPMs).  
-You'll need to create an image file which will be written to the CD. This  
-file will be 500Mb or more so find a partition with enough free space and  
-change the path for redhat.img in the following commands if  
-necessary. You may need to be root to use mount and cdrecord.  
-  
-  
-  
-  
-!Create iso9660 disk image  
-  
-  
-  
-  
-  
-Change directory to the place in your mirror that will be the root  
-directory of the cd. For instance, redhat-6.1/i386.  
-  
-  
-  
-  
-  
-mkisofs -v -r -T -J -V "Red Hat 6.1" -b images/boot.img -c boot.catalog -o /tmp/redhat.img .  
-  
-  
-  
-  
-  
-  
-  
-The file ${RHROOT}/boot.catalog will be created by  
-mkisofs.  
-  
-  
-Some versions of mkisofs do not have a -J option. It can be  
-omitted since the Joliet extensions it specifies are not used by the  
-installer although they make the CD more readable in Windows.  
-  
-  
-  
-  
-  
-  
-  
-!Test the image  
-  
-  
-  
-  
-  
-If you're paranoid you can test your new disk image by mounting it. If you  
-forgot to fix the file permissions or set the rock ridge extensions then  
-the error will be obvious here since the file names and directory structure  
-will be wrong.  
-  
-  
-  
-  
-  
-mount -t iso9660 -o ro,loop=/dev/loop0 /tmp/redhat.img /mnt/cdrom  
-  
-  
-  
-  
-When you're done, don't forget to unmount it.  
-  
-  
-  
-  
-  
-umount /mnt/cdrom  
-  
-  
-  
-  
-  
-  
-  
-  
-  
-!Burn the disk  
-  
-  
-  
-  
-  
-Be sure to set the correct speed for your device. This command is for a 4X  
-CDR. You may have a 1X or 2X drive.  
-  
-  
-  
-  
-  
-cdrecord -v speed=4 dev=,3 /tmp/redhat.img  
-  
-  
-  
-  
-In the above command, it is assumed that the CD writer is on SCSI bus ,  
-with ID number 3.  
-  
-  
-  
-----  
-  
-!! 7. Installing from the CD  
-  
-  
-  
-  
-  
-When installing from the new CD, you may first need to create a bootable  
-installation diskette. IMPORTANT: use a NEW, freshly MS-DOS formatted  
-diskette! Using an old, worn-out, faulty diskette can result in strange  
-problems during the installation!  
-  
-  
-On a Linux system, you can create the diskette using the dd command:  
-  
-  
-  
-  
-  
-dd if=/mnt/cdrom/images/boot.img of=/dev/fd0 bs=1440k  
-  
-  
-  
-  
-On a system running DOS or Windows-9x, you need to use the RAWRITE.EXE  
-program, which is found on the CD in the dosutils directory.  
-  
-  
-Shut down the machine you want to install (or do a system upgrade) on,  
-insert the boot diskette and your freshly burned CD, and let the machine  
-boot from the diskette. For more information on the installation process,  
-se the documents and the Installation-HOWTO or the Bootdisk-HOWTO which are  
-on the CD in the doc/HOWTO directory.  
-  
-  
-  
-  
-!!7.1 Booting from a bootable CD  
-  
-  
-  
-  
-  
-  
-Most modern machines are able to boot directly from a CD, provided it is  
-made bootable with the procedure outlined in section  
-Creating a bootable CD.  
-Often, however, you need to change the setting of the BIOS to make the CD  
-drive bootable. See the documentation for your mother board to see how  
-it's done.  
-  
-  
-  
-----  
-  
-!!8. Other Linux distributions  
-  
-  
-  
-  
-  
-The information in this document also applies to other Linux distributions  
-that are !RedHat clones, such as  
-Mandrake, although we have not actually tried them ourself. The  
-Mandrake distributions uses a simpler hdgenlist program (it's a shell  
-script), and other details may be different.  
-  
-  
-The  
-LinuxPPC distribution for  
-Apple !PowerMacs and other PowerPPC machines is also somewhat similar to the  
-!RedHat distribution. When making a distribution for the !PowerMac platform,  
-you need to use  
-mkhybrid) instead of mkisofs. We have not tried it, but we'd  
-like to hear from people who have.  
-  
-  
-  
-----  
-  
-!!9. This document...  
-  
-  
-  
-  
-  
-The SGML source of the most recent version of this document can be  
-retrieved from  
-http://imsb.au.dk/~mok/linux/doc/!RedHat-CD.sgml  
-(  
-HTML version).  
-  
-  
-You can link to the !RedHat-CD mini HOWTO by making the following reference  
-on your home page:  
-  
-<a href="http://imsb.au.dk/~mok/linux/doc/!RedHat-CD.html">  
-<img src="http://imsb.au.dk/~mok/logos/!RedHat-CD.png" alt="!RedHat CD mini-howto" height=30 nosave border=>  
-</a>  
-  
-  
-  
-  
-  
-!!9.1 Related documentation  
-  
-  
-  
-  
-  
-  
-Ed Schlunder <zilym@asu.edu> has written a utility called  
-fix-rhcd to let you check your Red Hat Linux distribution mirror for  
-matching file sizes, names, permissions, and symlinks against an "ls -lNR"  
-listing from the offical Red Hat ftp site. Any permissions that are wrong  
-are changed to match the ls listing. See the  
-fix-rhcd homepage.  
-  
-  
-Rod Smith <smithrod@bellatlantic.net> has written a Do-It-Yourself  
-Red Hat Installation guide, which also includes information on creating  
-!RedHat install CD's. Especially aimed at burning a CD from a non-UNIX  
-system. Find it at  
-http://members.bellatlantic.net/~smithrod/rhjol.html.  
-  
-  
-A document in french ''``Comment graver un CD de la !RedHat 5.x a partir  
-de fichiers telecharges sur Internet...'''' by <skooter@hol.fr> is  
-available from  
-http://linuxfr.org/docs/article/gravure-CD-RH51.html.  
-  
-  
-With the sense of the good things in life Jussi Torhonen from Finland  
-<jussi.torhonen@tietosavo.fi> tells us  
-Howto make a homebrew bootable  
-!RedHat Linux 5.2 CD-ROM.  
-  
-  
->From the LDP project, see the  
-CD-writing HOWTO.  
-  
-  
-  
-  
-!!9.2 Acknowledgements  
-  
-  
-  
-  
-  
-  
-Apart from those mentioned above, thanks are given to the following  
-people for valuable input, feedback and discussions:  
-  
-  
-  
-  
-  
-*Lars Christensen <larsch@cs.auc.dk>  
-*  
-  
-*Thomas Duffy <tbd@cs.brown.edu>  
-*  
-  
-*Dawn Endico <dawn@math.wayne.edu>  
-*  
-  
-*Seva <seva@null.cc.uic.edu>  
-*  
-  
-*Michael Thomas Cope <mcope@orion.ac.hmc.edu>  
-*  
-  
-*Charles J. Fisher <charles_fisher@bigfoot.com>  
-*  
-  
-*Eric Thomas <eric.thomas@ericsson.com>  
-*  
-  
-*Gordon Yuen <gdccyuen@yahoo.com>  
-*  
-  
-  
-  
-  
-----  
-  
-!! 10. DISCLAIMER  
-  
-  
-  
-  
-  
-__While the given information in this document is believed to be correct, the  
-authors assume no responsibility whatsoever for any damage to hardware  
-and/or software, or any loss of data resulting from the procedures outlined  
-in this document .__  
+Describe [HowToRedHatCDHOWTO ] here.