Build the Framework Packages
Prerequisites
Complete installation media for your chosen distribution
- If there is more than one disc, you will need all of them
Make sure the following packages are installed and up to date:
git
mock
ClamAV # or whatever includes freshclam (on Fedora, the package is called clamav-update)
createrepo
rpm-sign # not necessary on EL6/EL7
gnupg # "gnupg2" on EL6/EL7
genisoimage
augeas-devel
- libxslt-devel
- libicu-devel
- Install RVM and
ruby
1.9 and 2.1 (but not 1.8 or 2.2) Your user must be in
mock
groupTo add a user to that group, use this command as root:
usermod -a -G mock [User name] && newgrp mock
60G of space in /var/lib/mock
Info title Mock Mount Information Please note that the partition that houses /var/lib/mock must have execute and device permissions for Mock to run properly.
The
gpg
executable must be in the user's path (Fedora package:gnupg, EL package: gnupg2)
Info title Repoclosure Issues Presently, there are issues with EPEL expiring packages in our packages.yaml files on the fly.
The most recent of these is that python-six was pulled from EPEL and included directly in CentOS 6.7.
While this is awesome, it makes getting a consistent build made difficult and we're looking into this issue.
If all else fails, add the remote CentOS repos to the build/yum_data/<target_version>/repos directory, then erase the offending RPMs from packages.yaml, to work around this for now.
Build SIMP!
Clone the master repository and enter it
Code Block language bash $ git clone https://github.com/simp/simp-core $ cd simp-core
Switch to the branch appropriate for the ISO you are building. In this example, we are building for CentOS 6.6, so we run
Code Block language bash $ git checkout 4.2.X
Install the needed gems as described in the Gemfile
Code Block language bash $ gem install bundler $ bundle
Download all the SIMP components
Code Block language bash $ rake git:submodules:reset
Cross your fingers
You may need to run the following to make sure you have all of the bundles you need for all of the submodules in this project
Code Block language bash $ rake build:bundle
Build the DVD overlay tarball. Further documentation for the arguments is available in rake.
Code Block language bash $ rake tar:build[epel-6-x86_64,dev,false] (builds for RHEL6, dev key, no docs)
Build the ISO
- cd into simp-core
Download all of the required packages for the build:
Code Block language bash $ rake build:yum:sync[<CentOS or RHEL>,<os_version>,<simp_version>,<architecture>]
If you have previously downloaded packages from yum, you may need to run
Code Block language bash $ rake build:yum:clean_cache
- Optionally, you may drop in custom packages you wish to have available during an install into
build/yum_data/SIMP<simp_version>_<CentOS or RHEL><os_version>_<architecture>/packages
- Take your favorite RHEL or CentOS DVD set and place them in some directory somewhere with enough space to hold 3 copies.
- cd to the directory holding the ISO images
Unpack the ISOs
Code Block language bash $ mkdir orig $ cd orig $ BUNDLE_GEMFILE=/path/to/simp-core/Gemfile rake -f /path/to/simp-core/Rakefile unpack["/path/to/ISO1"]
- Repeat the rake task for any additional ISOs
Make a new directory for your custom ISO build and copy the contents of the extracted ISOs
Code Block language bash $ cd .. $ mkdir 4.2.X $ cd 4.2.X $ cp -rl ../orig/*6.6* .
And finally, build the ISO:
Code Block language bash $ BUNDLE_GEMFILE=/path/to/simp-core/Gemfile rake -f /path/to/simp-core/Rakefile iso:build["/path/to/simp-core/build/DVD_Overlay/<appropriate>.tar.gz"]
...