Skip to content.

Scientific Linux

Personal tools
You are here: Home » Distributions » 30x » SL 301 » Sites » Example Site » README.steps


Steps needed to create your own distribution from Scientific Linux
Definitions used in this document.

where <default> is the default directory of the base

where <sitename> is your sitename which is the directory under sites/ .

where <tree> is the directory where <default>/ exists

In this example it is /mnt/src/sl30rolling/i386/
Note that it must be a full path name.

Steps for making your own site customization

Note that the steps outlined here must be executed on a system which has
Scientific Linux (SL) with the anaconda and anaconda-runtime rpms installed.
The "Development Tools" group must have been installed if you wish to
build your own rpms.


In this example we will use

new site "newsite" so $SITE is "newsite".
<tree> is in /mnt/src/sl30rolling/i386/ and is defined as $TREE
<default> is SL and is defined as $DEFAULT


cd $TREE
mkdir sites/newsite # Create new site area
cd sites/example
find . -print | cpio -pvdum ../newsite # copy over example area as a start
cd ../newsite/Updates

<add and remove RPMS in "Updates" to customize as you want>

For the rpms you want to change install the SRPM and then make changes
as necessary in /usr/src/redhat/SPECS/ . You should change the version
string so as to distinguish it from the original.

Some rpms that you might want to change are


so to point to your local yum repository


to contain your own release name. This will change the name of this
rpm and will require you to change the example-release entry in
../base/comps* so the installer will find the right rpm.
To install the SRPM for example-release so that you can modify it
for your needs.

rpm -iv $TREE/sites/example/SRPMS/example-release*

The spec file after installing will be in
/usr/src/redhat/SPECS/example-release.spec . It is easiest to copy
this spec file as newsite-release.spec and modify that. Then rebuild
your new release rpm with

rpmbuild -ba /usr/src/redhat/SPECS/newsite-release.spec

The new newsite-release rpm will be in /usr/src/redhat/RPMS/i386/


This rpm contains the graphics used during the install. See
README.images for info on what could/should be changed.


This rpm contains the "help" info on the left side of the gui installer
screen. You might want to change the "SL" to be your site name.

cd ../base

<modify "comps.xml.main" to include added RPMS and other site
customizations, The one included here is the same as what is in SL itself,
with sl-release changed to example-release>

modify "scripts/"

Change the "example" entries at the beginning to be your site
Also make sure that basedir is what your base directory really is

sh scripts/

cd ../build/isolinux

<modify files in "build/isolinux" as described in "build/isolinux/README"
NOTE that this is <tree>/sites/$SITE/build/isolinux and NOT
<tree>/isolinux/ >

cd ../scripts

<modify "locations.include" to fix TREE= and SITE= to be
TREE=<where ever your tree is located> # In our case it is already ok.
change --product string in>


< cp>
< modify to have your newsite in it instead of example>

sh # Need to do whenever you change contents of
# $TREE/sites/$SITE/RHupdates/

sh # Run this whenever you change contents of
# $TREE/sites/$SITE/Updates/

sh # Only need to run this when changing installer
# kernel , but at least 1 time

<now test install with images in "$TREE/sites/$SITE/images/">

while <not_right_yet>

<add and remove RPMS in "$TREE/sites/$SITE/Updates" to customize as you want>

<run $TREE/sites/$SITE/build/scripts/ after each
batch of changes>

<modify $TREE/sites/$SITE/base/comps.xml.main and run
$TREE/sites/$SITE/base/scripts/ when you want to move
these changes over as your "real comps.xml">

<test with install images in $TREE/sites/$SITE/images/, only need to
rebuild these when installer kernel changes or anaconda rpms change
and you want to include those changes
Note that anaconda python script changes can be placed in
$TREE/sites/$SITE/RHupdates/ , this makes testing easier, they do
NOT have to be put in the anaconda rpms unless that is what you want>


<After you are happy. There are a few scripts that should be run that
create a rpm that contain info about all the other rpms. This is why
it should be done at the end. It does not hurt to run it more it
just takes time.>

cd $TREE/$ARCH/sites/newsite/build/scripts

<I have also included a script to make cd isos. The created isos are
placed in $TREE/$ARCH/sites/newsite/iso/ . Verify that you have at
least 650MB x 4 disk space free there.>

cd buildisoimages

<I have created a script that will build everything. It asks if you
want to build install images and cd iso images. It calls all the
other scripts and thus makes sure that all things have been built.
It is located in



If you have any questions about this procedure please send me email.

-Connie Sieh
Created by dawson
Last modified 2004-09-03 01:56 PM

Powered by Plone

This site conforms to the following standards: