Skip to content

Quickstart for the REALLY impatient

fgeorgatos edited this page Feb 8, 2013 · 3 revisions

OK, here we go.

It seems that the python mechanisms to install easybuild are not portable enough across different platforms; here is an attempt to document the method that I have been using since day 1 and has been very robust, up to now.

It is simply based on env-modules & git (with github.com default repos) and a handful of manual commands:

export WHERE=/opt/apps/local/software/easybuild/1.1.0 # wherever you fancy to place the installation
mkdir $WHERE && cd $WHERE
git clone git@github.com:hpcugent/easybuild-easyframework.git
git clone git@github.com:hpcugent/easybuild-easyblocks.git
git clone git@github.com:hpcugent/easybuild-easyconfigs.git

and the related modulefile follows hereby: (eg. save it a file, eg. /opt/apps/local/modules/all/easybuild/1.1.0, and then try module load /opt/apps/local/modules/all/easybuild/1.1.0)

#%Module
##
# This file is an EasyBuild recipy as per https://github.com/hpcugent/easybuild
#
# Copyright:: Copyright 2012-2013 University of Luxembourg/Luxembourg Centre for Systems Biomedicine
# Authors::   Fotis Georgatos <fotis.georgatos@uni.lu>
# License::   MIT/GPL
# $Id$
#
# This work implements a part of the HPCBIOS project and is a component of the policy:
# http://hpcbios.readthedocs.org/en/latest/HPCBIOS_2012-92.html
##

proc ModulesHelp { } {
    puts stderr {   EASYBUILD is a build framework that lets you work more quickly and integrate your systems more effectively. - Homepage: http://EASYBUILD.org/
}
}

module-whatis "EASYBUILD is a build framework that lets you work more quickly and integrate your systems more effectively. - Homepage: http://EASYBUILD.org/"

## version & location
set ebver   1.1.0
set root    /opt/apps/local/software/easybuild/$ebver

## this modulefile will be more elegant by using these definitions
set EB_framework      $root/easybuild-framework
set EB_easyblocks     $root/easybuild-easyblocks
set EB_easyconfigs    $root/easybuild-easyconfigs
set cfgs              $EB_easyconfigs/easybuild/easyconfigs/

## prevent from loading together with other versions of easybuild
conflict    easybuild

## variables to define - this is the important part - the first two are uni.lu customizations
setenv          EBHOME          $EB_easyconfigs
prepend-path    EBPATH          $EB_easyconfigs
prepend-path    MANPATH         $EB_framework/share/man
prepend-path    PATH            $EB_framework
prepend-path    PYTHONPATH      $EB_easyblocks:$EB_framework
setenv          CFGS            $cfgs

## uni-lu customization, saves keystrokes and skips warnings on a Debian platform
set-alias eb "time eb --robot $cfgs --strict=ignore"

## uncomment on as needed basis
# setenv	EASYBUILDBUILDPATH      /dev/shm/
# setenv	EASYBUILDPREFIX         /tmp/EASYBUILD-TEST

## For conformity with the rest of the produced modules
setenv	EBROOTEASYBUILD		$root
setenv	EBVERSIONEASYBUILD	$ebver

You might want to look at this one, in order to feed the manpage directory correctly: https://github.com/fgeorgatos/easybuild-framework/blob/develop/share/man/man1/eb.1 (the generation of this file is not yet automated in the framework but it may happen any time soon)

If you adjust the MODULEPATH accordingly, you should now be able to do module load easybuild ; man eb etc!

At this point, the Python elegant language takes over :-P (just pick a compatible version)

enjoy, Fotis