{{WorkInProgressNeedsUpdate}} 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__<br>
'''Please Note:'''
*Since this article is a "work in progress", information in this article will be fluid for sometime, your patience will be appreciated. The author has never been down this path before.
* 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.
----This article contains specifications, construction steps, and implementation information for * There are two known bugs posted on the Red Hat Bug Tracker that have a major effect on building a "build machine" for the "new Amahi Express Installation Install Disc". The intent of the machine is Amahi members are currently attempting to aid in the development find "workaround(s) that are being researched, prototyped, and building of new Amahi Express Installation disc imagestested.__TOC__
=== 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.
'''/(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.
<blockquote><pre>|mkdir -p /media/optdrive
mkdir -p /media/usbdrive
mkdir -p /media/usbstick</pre></blockquote>
* Install the following packages.
<blockquote><pre>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</pre></blockquote>
* Optionally install the following packages.
<blockquote><pre>yum -y install fedora-kickstarts # kickstarts used to compose the official Fedora Spins
# sample kickstarts stored at /usr/share/spin-kickstarts
yum -y install custom-kickstarts # kickstart files for Custom Spins
# sample kickstarts stored at /usr/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 as , 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.
==== Construct the Repositories ====
* Start a "terminal session" and switch to the "root" user.
* 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 "<nowiki>http://mirrors.kernel.org/fedora/updates/testing/18/i386/</nowiki>" and download the following Packages:
'''PLEASE NOTE:''' The updates repository is disabled due to a Fedora 18 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).
==== Test the Repositories ====
* Start a terminal sessions and switch to the root user.
* Enter the following commands.
<blockquote><pre>yum clean all
yum repolist</pre></blockquote>
* Something like this with other stuff will be displayed.
<blockquote>
<pre>repo id
f18-base-local
f18-updates-local</pre></blockquote>
==== 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.