This article contains specifications, construction steps, and implementation information for a "build machine" for the "Amahi Express Installation Disc". The intent of the machine is to aid in the development and building of new Amahi Express Installation disc images.
__TOC__
* Any advice or suggestions you may have please post to the '''[https://forums.amahi.org/viewforum.php?f=44 Amahi Wiki "Express Disc" Forum]'''.
* The "Category" link, "Amahi Express Collection", at the bottom of this page provides links to other reference information relating to the "Amahi Express" subject area.
* There are two known bugs posted on the Red Hat Bug Tracker that have a major effect on building a new Amahi Express Install Disc. Amahi members are currently attempting to find "workaround(s) that are being researched, prototyped, and tested.
=== Recommended Configuration ===
* Latest full version of the Fedora ( this article will reference Fedora 18 32-bit) DVD.
* As modern of a computer as possible ( machine for this article used: Intel Core 2 Duo @ 3.0 GHz, 4GB RAM, 160 GB Hard Disk ).
* External storage facility ( i.e. external USB drive (1 TB?), Amahi share, Amahi ownCloud directory) with storage greater that the size of the build machine.
* Ensure that Fedora updates are done after the DVD installation.
* Create "mount points" for use later.
<blockquote>{{Code<pre>|mkdir -p /media/optdrive
mkdir -p /media/usbdrive
mkdir -p /media/usbstick}}</pre></blockquote>
* Install the following packages.
<blockquote>{{Code|<pre>yum -y install system-config-kickstarts # graphical interface for making kickstart filesyum -y install pungi # tool to create anaconda based installation trees/isos}}yum -y install createrepo # tool to refesh repo databases</pre></blockquote>
* Optionally install the following packages.
<blockquote>{{Code|<pre>yum -y install fedora-kickstarts # kickstarts used to compose the official Fedora Spins # sample kickstarts stored at /varusr/share/spin-kickstarts
yum -y install custom-kickstarts # kickstart files for Custom Spins
# sample kickstarts stored at /varusr/share/spin-kickstarts/custom}}</pre></blockquote>
=== Local Fedora Repositories ===
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.
* Start a "terminal session" and switch to the "root" user.
* Copy rpm packages to the local "base" repo directory structure.
<blockquote>{{Code|<pre>cp -av /media/optdrive/Packages/* /opt/fedora/f18/i386/base}}</pre></blockquote>* Copy the main "comps xml" file to the local "base" repo directory structure.<blockquote>{{Code|<pre>cp /media/optdrive/repodata/*comps*.xml /opt/fedora/f18/i386/base/comps.xml}}</pre></blockquote>* Install The production Anaconda Installer for Fedora 18 has a bug that will not allow discs to be built. A "test" version is available that allows discs to be built.* Go to the Fedora 18 URL "createrepo<nowiki>http://mirrors.kernel.org/fedora/updates/testing/18/i386/</nowiki>" utilityand download the following Packages:<blockquote><pre>anaconda-18.37.12-1.fc18.i686.rpmanaconda-dracut-18.37.12-1.fc18.noarch.rpmanaconda-widgets-18.37.12-1.fc18.i686.rpm</pre></blockquote>* Go to the "base", Packages, "a" directory and remove the following production Anaconda Installer packages:<blockquote>{{Code|yum <pre>anaconda-18.37.11-1.fc18.i686.rpmanaconda-dracut-18.37.11-y install createrepo}}1.fc18.noarch.rpmanaconda-widgets-18.37.11-1.fc18.i686.rpm</pre></blockquote>* Copy the downloaded "testing" Anaconda "version 12" packages to the "base", Packages, "a" directory.
* Go to the local "base" repo and generate the "base" repo files.
<blockquote>{{Code|<pre>cd /opt/fedora/f18/i386/base# go to the base package directorycreaterepo . # refresh the "base" repo databasecreaterepo -g comps.xml . # refresh the comps.}}xml for group changes</pre></blockquote>
:Please notice the "dot" after createrepo, it's important.
* Populate the "updates" repo.
: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.
enabled=0}}</pre></blockquote>'''PLEASE NOTE:''' The updates repository is disabled due to a Fedora 18 bug bugs (2 known bugs on Red Hat Bug Tracker) in the Anaconda Installer.
* Disable all of the existing default repositories by editing each ".repo" file and setting "enabled=0" (from 1).
* Start a terminal sessions and switch to the root user.