Hi Jack,
On 18/06/14 16:42, Jack Perdue wrote:
Howdy all,
I have a tree of software/modules built
with easybuild.
I'd like to play with a module hierarchy
like Lmod recommends. But I don't want
to recompile the entire software tree.
Is there a way to tell eb to not bother
building the software, but to simply run
the module creation step... something like
rpmbuild's --short-circuit option?
I've tried various combinations of the
--skip option but haven't had any luck.
Basically I want to exclude these steps
(from "eb --confighelp"'s note on --skip)
fetch, ready, source, patch, prepare, configure, build, test, install,
extensions, package, postproc, sanitycheck, cleanup, testcases
and only run "module".
Any pointers appreciated.
It's actually very easy: just use both --skip and --force.
With --skip, you will skip the whole build procedure (from fetch to
postproc), but it will do the others (which should be fine generally).
You have to use --force since EasyBuild will already fine the module,
and you have to tell it to 'redo' the build (the --skip will actually
prevent it from rebuilding again).
$ module av bzip2
$ time eb bzip2-1.0.6.eb > /dev/null
eb bzip2-1.0.6.eb > /dev/null 4.02s user 1.01s system 177% cpu 2.826 total
$ ls -l /Users/kehoste/.local/easybuild/modules/all/bzip2/1.0.6
-rw-r--r-- 1 kehoste staff 1206 Jun 19 08:36
/Users/kehoste/.local/easybuild/modules/all/bzip2/1.0.6
$ time eb bzip2-1.0.6.eb --skip --force > /dev/null
eb bzip2-1.0.6.eb --skip --force > /dev/null 0.98s user 0.67s system
102% cpu 1.607 total
$ ls -l /Users/kehoste/.local/easybuild/modules/all/bzip2/1.0.6
-rw-r--r-- 1 kehoste staff 1206 Jun 19 08:37
/Users/kehoste/.local/easybuild/modules/all/bzip2/1.0.6
Note that the second time eb took only 1s, basically because it only
redid the sanity check and the module generation.
This is typically used when adding additional extensions, e.g. when
installing an extra R library into an existing R module.
That being said, we should probably look into adding support for
something like "eb --redo-module" to make this a no-brainer
(we're kind of abusing --force here, which is a bad thing to teach
people ;-)).
Several people are looking into playing around with hierarchical
modules, see e.g.
https://github.com/hpcugent/easybuild-framework/issues/862 .
There are a couple of open issues that need to be tackled to do things
right.
In fact today/tomorrow this is one of the things we will focus on during
the 6h EasyBuild hackathon!
One good location to stay up to date w.r.t. that effort in the
#easybuild IRC channel, since several people attending the hackathon
will be hanging out there.
More information via
https://github.com/hpcugent/easybuild/wiki/Contact#irc .
regards,
Kenneth