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
rpmdevtools
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
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)
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!
Make sure you are a normal user and not root!
Clone the master repository and enter it
$ 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
$ # check available branches $ git branch -a $ # checkout the branch you want $ git checkout 4.2.X
Install the needed gems as described in the Gemfile
$ gem install bundler $ bundle
Download all the SIMP components
$ 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
$ rake build:bundle
Build the DVD overlay tarball. Further documentation for the arguments is available in rake.
$ 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:
$ 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
$ 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
$ 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
$ cd .. $ mkdir 4.2.X $ cd 4.2.X $ cp -rl ../orig/*6.6* .
And finally, build the ISO:
$ 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"]