SIMP Version Matrix
SIMP Version | RHEL/CentOS Version | Images Required | Mock Build Environment |
---|---|---|---|
4.2.X | 6.7 | DVD1 and DVD2 | epel-6-x86_64 |
5.1.X | 7.1(RHEL) / 7.0(CentOS) | Everything ISO | epel-7-x86_64 |
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
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
group60G 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.
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
Check which branches are available
$ git branch -a
Switch to the branch appropriate for the ISO you are building. In this example, we are building for CentOS 6.7, so we run
$ git checkout 4.2.X
Install the needed gems as described in the Gemfile
$ gem install bundler $ bundle
The Easy Method
This method uses a pre-existing tarball to build the SIMP ISO and is the fastest way to get started.
- Head over to the BinTray repository and find the version of SIMP that you wish to build.
Create the DVD_Overlay directory
$ mkdir -p build/DVD_Overlay
Download the version that you want into the DVD_Overlay directory
$ cd build/DVD_Overlay $ curl -LO https://bintray.com/artifact/download/simp/Releases/SIMP-DVD-CentOS-4.2.0-RC1.tar.gz $ cd -
You can now proceed to Building the ISO.
Building from Scratch
Prerequisites
Make sure the following additional packages are installed and up to date:
mock
ClamAV # or whatever includes freshclam (on Fedora, the package is called clamav-update)
Download all the SIMP source components
$ rake git:submodules:reset
Build the DVD overlay tarball. Further documentation for the arguments is available in rake (r
ake -D
).$ rake tar:build[epel-6-x86_64,dev,false] (builds for CentOS/RHEL 6, dev key, no docs)
If you've never run the build process before, 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 ISO
This example is based around using CentOS 6.7.
- cd into simp-core
Download all of the required packages for the build:
$ rake build:yum:sync[<CentOS or RHEL>,<os_version>] # Example: rake build:yum:sync[CentOS,6.7]
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 ISOs and place them in some directory somewhere with enough space to hold 3 copies.
CentOS ISO Retrieval Example$ mkdir /tmp/CentOS_Build $ cd /tmp/CentOS_Build $ curl -LO http://mirror.vtti.vt.edu/centos/6.7/isos/x86_64/CentOS-6.7-x86_64-bin-DVD1.iso $ curl -LO http://mirror.vtti.vt.edu/centos/6.7/isos/x86_64/CentOS-6.7-x86_64-bin-DVD2.iso
Unpack the ISOs
$ mkdir orig $ cd orig $ BUNDLE_GEMFILE=/path/to/simp-core/Gemfile rake -f /path/to/simp-core/Rakefile unpack["`pwd`/CentOS-6.7-x86_64-bin-DVD1.iso"] $ BUNDLE_GEMFILE=/path/to/simp-core/Gemfile rake -f /path/to/simp-core/Rakefile unpack["`pwd`/CentOS-6.7-x86_64-bin-DVD2.iso"]
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/CentOS6.7-x86_64 .
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/SIMP-DVD-CentOS-4.2.0-RC1.tar.gz"]