Alternative installation methods¶
This page describes the alternative installation methods:
- Standard installation of latest release
- Installation from downloaded sources
- Installation of latest release from GitHub
- Installation of latest development version
Do take into account the list of (required) dependencies (see Dependencies).
Standard installation of latest release¶
Usually, you just want to install the latest (stable) version of each of the EasyBuild packages (framework, easyblocks, easyconfigs).
Python provides a couple of ways to do that. Every version of the EasyBuild packages is released via PyPi.
Installing EasyBuild without admin rights¶
If you do not have EasyBuild installed yet, or if you just want to install the most recent version of each of the EasyBuild packages, you can use one of the following simple commands:
easy_install(old tool, but still works):
easy_install --prefix $HOME/EasyBuild easybuild
If you already have easybuild installed, you may need to instruct
easy_installto install a newer version, using
pip(more recent and better installation tool for Python software):
pip install --install-option "--prefix=$HOME/EasyBuild" easybuild
--prefix $HOME/EasyBuildpart in these commands allows you to install EasyBuild without admin rights into
For pip v8.0 and newer,
pip install --prefix=$HOME/EasyBuild easybuildworks too.
$PYTHONPATH environment variables¶
After installing EasyBuild with either
this, you will need to update the
variable to make sure the system can find the main EasyBuild command
eb. On (most) Linux distributions, the command for doing this is:
export PATH=$HOME/EasyBuild/bin:$PATH export PYTHONPATH=$HOME/EasyBuild/lib/python2.7/site-packages:$PYTHONPATH
To determine the path that should be added to the
environment variable for a given installation prefix, you can use the
python -c "import distutils.sysconfig; print distutils.sysconfig.get_python_lib(prefix='$HOME/EasyBuild/');"
Install with admin rights¶
If you do have admin rights on the system where you want to install
EasyBuild, you can simply omit the
--prefix $HOME/EasyBuild/ to have
EasyBuild installed system-wide. In that case, you do not need to touch
$PYTHONPATH environment variables since the
command will be installed in one of the default paths.
As an alternative to
--prefix when you do not have admin rights, you
can specify that EasyBuild should be installed in your
The full list of commands to install EasyBuild in your
pip would be:
pip install --user easybuild export PATH=$HOME/.local/bin:$PATH
In our experience, using
--user creates more problems than it
solves. We have run into unexpected behavior with Python software
installed in your home directory using
--user, for example it
always being preferred over versions installed somewhere else.
Hence, we strongly discourage using
--user to install EasyBuild (or
other Python software).
Installing the EasyBuild packages separately¶
Each of the EasyBuild packages can also be installed separately:
pip install --install-option "--prefix=$HOME/EasyBuild" easybuild-framework pip install --install-option "--prefix=$HOME/EasyBuild" easybuild-easyblocks pip install --install-option "--prefix=$HOME/EasyBuild" easybuild-easyconfigs
This is the exact same sequence of steps as they will be performed when
pip install --install-option "--prefix=$HOME/EasyBuild" easybuild.
Installation from downloaded sources¶
To install one of the EasyBuild packages from a downloaded source tarball, use the following steps:
tar xfvz easybuild-framework-1.0.tar.gz cd easybuild-framework-1.0 pip install --install-option "--prefix=$HOME/EasyBuild" .
Do note that when an EasyBuild package is being installed without having
the EasyBuild packages that it depends upon available, both
pip will try and pull in the latest available
version of those packages from PyPi.
Thus, to have full control over the EasyBuild installation, you need to respect the following installation order: easybuild-framework, easybuild-easyblocks, easybuild-easyconfigs. The easyblocks package depends on the framework package; the easyconfigs package depends on both the framework and easyblocks packages.
If you do not have
easy_install available, you can also fall
back to using the
setup.py script directly:
python setup.py --prefix $HOME/EasyBuild install
Installation of latest release from GitHub¶
To install the latest (stable) release of an EasyBuild package directly from GitHub, use the following command:
pip install --install-option "--prefix=$HOME/EasyBuild" https://github.com/easybuilders/easybuild-framework/archive/main.tar.gz
Again, the order in which the EasyBuild packages are installed is important to have full control over the installation process, see previous section.
Installation of latest development version¶
To install the latest development version of an EasyBuild package from
GitHub, you can simply adjust the command from the previous section to
install from the
develop branch (or any of the available feature
branches in any EasyBuild repository for that matter):
pip install --install-option "--prefix=$HOME/EasyBuild" https://github.com/easybuilders/easybuild-framework/archive/develop.tar.gz
You should use this only if you are interested in developing for EasyBuild. Although it is well tested, the development version of the EasyBuild repositories may be unstable at a given point in time.
Installation of latest development version using provided script¶
After you have forked each of the EasyBuild repositories on GitHub (+
vsc-base), you can set up a development version of EasyBuild using the
This script will clone the different EasyBuild repositories from GitHub:
- easybuild: EasyBuild metapackage & documentation sources for http://easybuild.readthedocs.org
- vsc-base: dependency for EasyBuild framework (logging, command line interface, ...)
- easybuild-framework: EasyBuild framework
- easybuild-easyblocks: collection of easyblocks
- easybuild-easyconfigs: collection of easyconfig files
It can be used as follows:
# pick an installation prefix (adjust as you like) INSTALL_PREFIX=$(mktemp -d $HOME/EasyBuild-XXXXXX) # download script curl -O https://raw.githubusercontent.com/easybuilders/easybuild-framework/main/easybuild/scripts/install-EasyBuild-develop.sh # run downloaded script, specifying *your* GitHub username and the installation prefix bash install-EasyBuild-develop.sh GITHUB_USERNAME $INSTALL_PREFIX # update $MODULEPATH via 'module use', and load the module module use $INSTALL_PREFIX/modules module load EasyBuild-develop eb --version ## This should ensure you have a reasonable instance of EasyBuild
The above creates a module file which you can load/inspect at will.
The interesting aspect about it is that it is pointing to an EasyBuild installation directly on local git repositories, which allows you to customise it easily. Remember to commit/push or otherwise save your changes, if you intend to use them later.