Building SELKS

Peter Manev edited this page Aug 22, 2017 · 47 revisions

Build a SELKS ISO

You can download the latest SELKS ready to use from here. However if you would like to build SELKS from scratch and/or customize and modify it - you can follow this guide bellow.

Prerequisite

NOTE: You can build SELKS from scratch with a choice of a OS distribution based on one of the below:

  • Debian Stretch
  • Debian Jessie

The steps for building a SELKS based on Jessie or Stretch are exactly the same as explained in this article with the only difference being in the Get source from git section below.

You need a Debian Jessie (or Stretch - depending on what SELKS base OS distribution you would like) with a decent Internet access. Building a SELKS ISO will require the download of a complete system. You will also need around 5 GB of space in the build directory.

Get the sources and prepare the system

git clone https://github.com/StamusNetworks/SELKS.git
cd SELKS

Install the dependencies:

./install-deps.sh

If your host OS is Debian Jessie:

cd /usr/share/live/build/data/debian-cd/ && ln -s squeeze stretch

Build the system

You can now start the build:

./build-debian-live.sh

Please note, that the previous command can take up to 40 min to complete. You will then find the ISO file under Stamus-Live-Build/SELKS.iso

usage: ./build-debian-live.sh options

SELKS build your own ISO options:

RUN ON DEBIAN WHEEZY/JESSIE ONLY
OPTIONS:
  -h      Help info
  -g      GUI option - can be "no-desktop"
  -p      Add package(s) to the build - can be one-package or "package1 package2 package3...." (should be confined to up to 10 packages)
  -k      Kernel option - can be the stable standard version of the kernel you wish to deploy -
          aka you can choose any kernel "3.x.x" you want.
          Example: "3.10" or "3.19.6" or "3.18.11"


          More info on kernel versions and support:
          https://www.kernel.org/
          https://www.kernel.org/category/releases.html

  By default no options are required. The options presented here are if you wish to enable/disable/add components.
  By default SELKS will be build with a standard Debian Jessie/Stretch 64 bit distro and kernel ver 3.16.x or 4.9.x respectively .

EXAMPLE (default):

./build-debian-live.sh

The example above (is the default) will build a SELKS standard Debian Wheezy/Jessie 64 bit distro - see Get source from git

EXAMPLE (customizations):

./build-debian-live.sh -k 3.19.6

The example above will build a SELKS Debian 64 bit distro with kernel ver 3.19.6

./build-debian-live.sh -k 4.12.8 -p one-package

The example above will build a SELKS Debian 64 bit distro with kernel ver 4.12.8 and add the extra package named "one-package" to the build.

./build-debian-live.sh -k 3.18.11 -g no-desktop -p one-package

The example above will build a SELKS Debian 64 bit distro, no desktop with kernel ver 3.18.11 and add the extra package named "one-package" to the build.

./build-debian-live.sh -k 4.12.8 -g no-desktop -p "package1 package2 package3"

The example above will build a SELKS Debian 64 bit distro, no desktop with kernel ver 4.12.8 and add the extra packages named "package1", "package2", "package3" to the build.

If you wish to do a subsequent build you need first to remove the output directory before starting a new build:

rm -rf Stamus-Live-Build/

If you plan to build SELKS multiple time you will gain time and spare bandwidth on Debian servers by using an APT proxy such as apt-cacher-ng. To use it, simply set LB_CONFIG_OPTIONS variable which allow you to pass any option to lb config

LB_CONFIG_OPTIONS="--apt-http-proxy http://localhost:3142/" ./build-debian-live.sh

In a similar way, you could specify a mirror:

LB_CONFIG_OPTIONS="--mirror-binary http://mirror/debian/ --mirror-binary-security http://mirror/debian-security/ --mirror-binary-backports http://mirror/debian-backports/" ./build-debian-live.sh