[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

my attempt at really terse docs for building a custom distro



  comments about the following while i finish the rest of it?

**** Overview
  This is a quick and dirty guide for how to create your own
customized Red Hat-based distro starting with Red Hat 8.0
as a template.
**** Preliminaries
  Before you start, issues to consider:

1) Verify that the anaconda-runtime RPM is installed, which
   supplies commands like genhdlist, buildinstall, splitdistro
   and so on, that you'll be running.

2) For convenience, you might extend your search path to save
   typing:

   # PATH=$PATH:/usr/lib/anaconda-runtime

3) If you don't want to create a complete distro, you might
   not want to add the SRPMS, just the RPMS.

4) Do all of this as root, since you will have to mount
   filesystems.
**** The initial structure:
  Assuming you're doing this on an i386 architecture, build the
entire install directory structure under a directory name of your
choice, in an "i386" subdirectory.  For this exercise, we'll use
/mydistro/i386.  (Yes, a later step really does require a 
subdirectory whose name is "i386".)

  Start with the initial build structure in this directory
(some of which is clearly optional, depending on how complete
you want to be):

autorun
dosutils/
images/
isolinux/
RedHat/
       RPMS/
	    [all RPMS you want to include]
       base/
            comps.xml
	    comps.rpm
{EULA,GPL,README*,RELEASE-NOTES*}

  Note that, unless you want to explicitly include the SRPMS,
you can leave out that entire directory structure, but this
will require you to run a modified version of the "splitdistro"
utility later.

  Note also that all of the other (original) files under the
RedHat/base directory (hdlist, hdlist2, *.img) will be rebuilt
anyway, so there's no need to make copies of them if you don't
want to waste the time or space.

  (In fact, most of the *.img floppy boot images in the images/
directory will be rebuilt as well, just in case you cared.)
**** Replace the RPMs
Add, delete, replace RPMs under RedHat/RPMS.
**** Branding your distribution
  As it stands, if you modify the stock Red Hat distro, it's 
probably a good idea to brand it with a name other than "Red
Hat".  

  Once you pick a cool, new name, you can rebrand by installing
the anaconda src RPM, hacking the source, changing all references
to "Red Hat" to your new name, rebuilding that RPM, and replacing
the stock anaconda RPM with it.  Details to follow at the end for 
the more ambitious.

  (Is the above reasonably accurate?)
**** Generate a new header list
  The files RedHat/base/{hdlist,hdlist2} contain information about
all of the RPMs, information like dependencies and mapping from
package names to file names.

  To (re)build these files based on your new collection of RPMs:

  # genhdlist /mydistro/i386
**** Update comps.xml
  Because this file is now an XML file, updating it to reflect
your new collection of RPMs is a bit more work than it used to
be when it was just a text file in earlier releases.

  Once again, let me leave this to the end.  We'll just assume
you've updated it properly to reflect your new collection of
RPMs and their component groupings.
**** Rebuilding the installer
  Run the "buildinstall" utility, which will rebuild a number
of the images/*.img floppy images, as well as RedHat/base/
{hdstg1,netstg1,stage2}.img.

  # buildinstall \
       --pkgorder /mydistro/i386/pkgorder.txt \
       --comp dist-8.0 \
       --version 8.0 \
       --release "My cool new distro" \
       /mydistro/i386

  It will also build a few other files that are needed in 
subsequent steps.


QUESTION:  This step generated all kinds of warnings, some of
which I'm not sure are serious or not.  Given that I'm just
testing a build with the stock files and directories, I would
assume that this should build nicely, so I'm assuming that all
of these warnings are not serious.  (I can supply the entire
560-line output file if anyone feels *really* ambitious. :-)

A small sample that I extracted from the output of this step
(should I be concerned about any of these?)



Expanding packages...                            
Expanding packages... util-linux-2.11r-10.i386.rpmwarning: /mydistro/i386/RedHat/RPMS/util-linux-2.11r-10.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Expanding packages...                             
Expanding packages... vte-0.8.19-1.i386.rpmwarning: /mydistro/i386/RedHat/RPMS/vte-0.8.19-1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Expanding packages...                      
Expanding packages...
retrieving timezones
Moving comps-extras pixmaps to where anaconda expects them
Running mkfontdir...
/usr/X11R6/bin/mkfontdir: failed to create directory in /mydistro/i386/RedHat/instimage/usr/share/fonts/ISO8859-2/*
Getting pango modules
/usr/bin/pango-querymodules: error while loading shared libraries: libX11.so.6: cannot open shared object file: No such file or directory
Getting gtk2 input method modules
/usr/bin/gtk-query-immodules-2.0: error while loading shared libraries: libXi.so.6: cannot open shared object file: No such file or directory
Munging fonts.confScrubbing trees...Scrubbing trees... /mydistro/i386/image-templateusr/sbin/ldconfig: /usr/lib/libnewt.so.0.51 is not a symbolic link

usr/sbin/ldconfig: /usr/lib/libbz2.so.1 is not a symbolic link

Scrubbing trees...                              
Scrubbing trees... /mydistro/i386/RedHat/instimageusr/sbin/ldconfig: /usr/lib/libnewt.so.0.51 is not a symbolic link

usr/sbin/ldconfig: /usr/lib/libbz2.so.1 is not a symbolic link

Scrubbing trees...                                
Compressing .mo files in stage2 images...
Creating fontconfig cache
/usr/bin/fc-cache: "/usr/X11R6/lib/X11/fonts/Type1": caching, 29 fonts, 0 dirs
Loading /lib/kbd/keymaps/i386/qwertz/slovene.map.gz
found 9 valid keymaps
  


creating keymap file /tmp/keymaps.28460/slovene.map
Loading /lib/kbd/keymaps/i386/qwerty/speakup.map.gz
KDSKBENT: Invalid argument
failed to bind key 55 to value 1030
found 10 valid keymaps
creating keymap file /tmp/keymaps.28460/speakup.map
Loading /lib/kbd/keymaps/i386/qwerty/speakup-lt.map.gz
KDSKBENT: Invalid argument
failed to bind key 55 to value 1030
found 10 valid keymaps
creating keymap file /tmp/keymaps.28460/speakup-lt.map
Loading /lib/kbd/keymaps/i386/qwerty/trq.map.gz
found 10 valid keymaps
creating keymap file /tmp/keymaps.28460/trq.map
Loading /lib/kbd/keymaps/i386/qwerty/ua.map.gz
found 37 valid keymaps
creating keymap file /tmp/keymaps.28460/ua.map
Loading /lib/kbd/keymaps/i386/qwerty/uk.map.gz
found 9 valid keymaps
creating keymap file /tmp/keymaps.28460/uk.map
Loading /lib/kbd/keymaps/i386/qwerty/us.map.gz
found 9 valid keymaps
creating keymap file /tmp/keymaps.28460/us.map
Loading /lib/kbd/keymaps/i386/qwerty/us-acentos.map.gz
found 9 valid keymaps
creating keymap file /tmp/keymaps.28460/us-acentos.map
Loading /lib/kbd/keymaps/i386/qwerty/us.map.gz
warning: /mydistro/i386/RedHat/RPMS/kernel-BOOT-2.4.18-14.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
warning: /mydistro/i386/RedHat/RPMS/kernel-pcmcia-cs-3.1.31-9.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
warning: /mydistro/i386/RedHat/RPMS/kernel-BOOT-2.4.18-14.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
unpacking /mydistro/i386/RedHat/RPMS/kernel-BOOT-2.4.18-14.i386.rpm
Building dosutils/autoboot/initrd.img
Module hid not found in kernel rpm
Module keybdev not found in kernel rpm
Module usb-ohci not found in kernel rpm
Module usb-uhci not found in kernel rpm
Module vfat not found in kernel rpm
install: cannot stat `/mydistro/i386/RedHat/instimage/usr/share/terminfo/x/xterm-color': No such file or directory
install: cannot stat `/mydistro/i386/RedHat/instimage/usr/share/terminfo/v/vt100': No such file or directory
16000+0 records in
16000+0 records out
mke2fs 1.27 (8-Mar-2002)
Wrote /tmp/makebootdisk.tree.28438 (510k compressed, 1515k free)
Building images/pxeboot/initrd.img
Module hid not found in kernel rpm
Module keybdev not found in kernel rpm
Module usb-ohci not found in kernel rpm
Module usb-uhci not found in kernel rpm
Module vfat not found in kernel rpm
install: cannot stat `/mydistro/i386/RedHat/instimage/usr/share/terminfo/x/xterm-color': No such file or directory
install: cannot stat `/mydistro/i386/RedHat/instimage/usr/share/terminfo/v/vt100': No such file or directory
16000+0 records in
16000+0 records out
mke2fs 1.27 (8-Mar-2002)
Wrote /tmp/makebootdisk.tree.28438 (543k compressed, 1472k free)
Building images/initrd-pcmcia.img
Module hid not found in kernel rpm
Module keybdev not found in kernel rpm
Module usb-ohci not found in kernel rpm
Module usb-uhci not found in kernel rpm
Module vfat not found in kernel rpm
install: cannot stat `/mydistro/i386/RedHat/instimage/usr/share/terminfo/x/xterm-color': No such file or directory
install: cannot stat `/mydistro/i386/RedHat/instimage/usr/share/terminfo/v/vt100': No such file or directory
16000+0 records in
16000+0 records out
mke2fs 1.27 (8-Mar-2002)
Wrote /tmp/makebootdisk.tree.28438 (520k compressed, 1392k free)







rday





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]