When installing Fedora it will be assumed that a "Desktop installation" path will be performed. Following are recommendations to be considered during the installation process.
- During the installation select the GNOME GUI environment, at some point it will be required in the disc build process.
- Highly recommend installing some GNOME extensions (GNOME Extensions) in order to provide a "classic windowing" environment.
- The Fedora "Anaconda Installer" has changed completely since Fedora 14. A "Hub and "Spoke" node model is used for it now instead of a "wizard-like" install. Please make sure all nodes (i.e. network config.) are properly configured before proceeding with the installation.
- Here is a disk partitioning plan to consider:
/boot partition: "standard partition"(no LVM), ext3 format, size 250 MB ( Fedora recommendation).
swap partition: "standard swap (no LVM)", swap format, size 2 times existing system RAM ( i.e. 2 x 4GB = 8GB ).
/(root partition): LVM partition, ext4 format, size set to the remaining space for the hard drive(s).
- Ensure that Fedora updates are done after the DVD installation.
- Create "mount points" for use later.
bash code
|
mkdir -p /media/optdrive mkdir -p /media/usbdrive mkdir -p /media/usbstick
|
- Install the following packages.
bash code
|
yum -y install system-config-kickstarts # graphical interface for making kickstart files yum -y install pungi # tool to create anaconda based installation trees/isos yum -y install createrepo # tool to refesh repo databases
|
- Optionally install the following packages.
bash code
|
yum -y install fedora-kickstarts # kickstarts used to compose the official Fedora Spins # sample kickstarts stored at /var/share/spin-kickstarts yum -y install custom-kickstarts # kickstart files for Custom Spins # sample kickstarts stored at /var/share/spin-kickstarts/custom
|
To reduce the amount of software packages that might have to be downloaded during a disc build process, local Fedora "base" and "updates" repositories should be used. These local repositories (repos) have an added advantage, the build machine can receive its' software updates.
The repos in this example will be stored in the "/opt" directory. What is this directory normally used for? I am so glad you asked.
According the the "Filesystem Hierarchy Standard" (FHS) definition:
"The root directory for Software Collections is normally located in the "/opt/ directory" to avoid possible
conflicts between Software Collections and the base system installation."
It is recommended to have the directory hierarchy conform to the following layout:
/opt/provider/application-version/
where: - "provider" is the provider (vendor) name registered with the Linux Foundation.
- "application-version" indicates the software collection version. This can be done via one name
or an ordered organization of subdirectories.
Construct the Repositories
- Start a "terminal session" and switch to the "root" user.
- Create local repository directory structures.
bash code
|
mkdir -p /opt/fedora/f18/i386/base mkdir -p /opt/fedora/f18/i386/updates
|
bash code
|
mount -o loop /dev/sr0 /media/optdrive
|
- Copy rpm packages to the local "base" repo directory structure.
bash code
|
cp -av /media/optdrive/Packages/* /opt/fedora/f18/i386/base
|
- Copy the main "comps xml" file to the local "base" repo directory structure.
bash code
|
cp /media/optdrive/repodata/*comps*.xml /opt/fedora/f18/i386/base/comps.xml
|
Text
|
anaconda-18.37.12-1.fc18.i686.rpm anaconda-dracut-18.37.12-1.fc18.noarch.rpm anaconda-widgets-18.37.12-1.fc18.i686.rpm
|
- Go to the "base", Packages, "a" directory and remove the following production Anaconda Installer packages:
Text
|
anaconda-18.37.11-1.fc18.i686.rpm anaconda-dracut-18.37.11-1.fc18.noarch.rpm anaconda-widgets-18.37.11-1.fc18.i686.rpm
|
- Copy the downloaded "test" Anaconda V12 packages to the "base", Packages, "a" directory.
- Go to "/opt/fedora/f18/i386/base".
- Go to the local "base" repo and generate the "base" repo files.
bash code
|
cd /opt/fedora/f18/i386/base # go to the base package directory createrepo . # refresh the "base" repo database createrepo -g comps.xml . # refresh the comps.xml for group changes
|
- Please notice the "dot" after createrepo, it's important.
- Populate the "updates" repo.
/bin/rsync -auvrt --delete --exclude=debug/ --exclude=drpms/ rsync://mirrors.kernel.org/fedora/updates/18/i386/
/opt/fedora/f18/i386/updates
- Please note this will take several hours to complete. Do it at night and check the next day.
- Go to "updates" repo and generate the "updates" repo files.
bash code
|
cd /opt/fedora/f18/i386/updates createrepo .
|
Create the "yum" Repository Files
- Start a terminal sessions and switch to the root user.
- Go to the /etc yum configuration directory.
bash code
|
cd /etc/yum.repos.d
|
- Using a text editor create the "f18-base-local.repo" file and insert the following text, and then save the file.
Text
|
[f18-base-local] name=Fedora 18 local base repository baseurl=file:///opt/fedora/f18/i386/base gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-18-primary enabled=1
|
- Using a text editor create the "f18-updates-local.repo" file and insert the following text, and then save the file.
Text
|
[f18-updates-local] name=Fedora 18 local updates repository baseurl=file:///opt/fedora/f18/i386/updates gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-fedora-18-primary enabled=0
|
PLEASE NOTE: The updates repository is disabled due to a Fedora 18 bug in the Anaconda Installer.
- Disable all of the existing default repositories by editing each ".repo" file and setting "enabled=0" (from 1).
Test the Repositories
- Start a terminal sessions and switch to the root user.
- Enter the following commands.
bash code
|
yum clean all yum repolist
|
- Something like this with other stuff will be displayed.
Text
|
repo id f18-base-local f18-updates-local
|
Refreshing a Repository
- Now the updates repo will need to be updated on a regular basis. This can be done manually or a script file that is run on a nightly basis with the following commands.
# rsync to download new rpms
/bin/rsync -auv --delete --exclude=debug/ --exclude=drpms/ rsync://mirrors.kernel.org/fedora/updates/18/i386/
/opt/fedora/f18/i386/updates
# go to the updates directory and rebuild the repo database
cd /opt/fedora/f18/i386/updates
createrepo .
Fringe Benefit
- The "build" machine's Fedora 18 can be updated from the local repo by "yum -y --enablerepo=f18-updates-local update". Cool yes?