Easy Builder

Many times we run into situations in which we don't have all the administrative privileges, but we need to be able to install software. Much of this software requires dependencies as well. A lot of the "normal" package systems assume that you can run as root, and make installing software as a user very challenging. Easy Builder strives to enable you to easily install things, while allowing you to manage the dependencies on their own.


To run Easy Builder, we first need to get a build of a tool called Megatest. This is what will run the flows that you setup for each tool.


Once you have megatest working, you just need to create a $USER.runconfigs.config file. You would add a section for the platform and revision that you are running. It might look something like this:


MT_BUILD_PREFIX /path/to/releases/

PROXY_SCRIPT /path/to/proxy/script/if/needed

PROXCMD /path/to/proxy/script/if/needed

EZ_AUTOTOOLS /path/to/ruby/2.6.0/bin:/path/to/postgresql/9.5.0/bin:/path/to/mysql/5.6.34/bin:/path/to/bash/4.2/bin:/path/to/wget/1.18/bin:/path/to/cmake/3.15.2/bin::/path/to/autotools/2.69/bin:/path/to/autotools/2.68/bin:/path/to/cmake/

EZ_NEW_GCC /path/to/new/gcc/9.2.0/bin

EZ_NEW_BASH /path/to/bash/4.2/bin

EZ_LDD /path/to/mysql/5.6.34/lib:/path/to/postgresql/9.5.0/lib


MT_BUILD_PREFIX /path/to/dev_releases/

This tells Easy Builder where you want the root of your tool installs to be, and allows you to provide a script to handle a proxy (if needed).

The next thing you need to do is to provide a "launchers.config". The contents of the file would look something like this:


flexi-launcher yes


sles12 /path/to/sles12/launcher --cores 4 --memory 8 --other options

rhel7 /path/to/rhel7/launcher --cores 4 --memory 8 --other options


%/rhel7/% rhel7

%/rhel7 rhel7

%/sles12/% sles12

%/sles12 sles12

% sles12

Once you have your config and launcher file setup, you could do something like:

megatest -target build/2022ww23/plat/dev -runname 2022ww23a -run -testpatt patchelf

This would build patchelf, and all it's dependencies, in MT_BUILD_PREFIX.