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
|
- 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 ( i.e. yum -y update ) from them.
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 repo directory structure.
bash code
|
cp /media/optdrive/repodata/*comps*.xml /opt/fedora/f18/i386/base/comps.xml
|
- Install the "createrepo" utility.
bash code
|
yum -y install createrepo
|
- Go to the local "base" repo and generate the "base" repo files.
bash code
|
cd /opt/fedora/f18/i386/base createrepo .
|
- 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 the usual "yum -y update". Cool yes?