Complete installation media for your chosen distribution
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
ruby
1.9 and 2.1 (but not 1.8 or 2.2)Your user must be in mock
group
To add a user to that group, use this command as root: usermod -a -G mock [User name] && newgrp mock
The gpg
executable must be in the user's path (Fedora package: gnupg, EL package: gnupg2)
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. |
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
$ 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) |
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 |
build/yum_data/SIMP<simp_version>_<CentOS or RHEL><os_version>_<architecture>/packages
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"] |
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"] |