On 12 Dec 2013, at 23:18, Bart Verleye wrote:
> Hi,
>
> I have a couple of questions on how to use easybuild (EB) with different
> admins and how to contribute in that case.
>
> I installed EB on a shared drive, and provided a file like the one attached.
> If this file is sourced by the admin, the admin is ready to install software
> with EB.
> So far so good.
Remarks w.r.t. the script:
PYLIB=`python -c "import distutils.sysconfig; print
distutils.sysconfig.get_python_lib(prefix='/share/easybuild/installation'); "`
export
PYTHONPATH=/share/easybuild/installation/lib/python2.6/site-packages/:$PYLIB
Doesn't this yield two exact same entries in $PYTHONPATH? Also, you should
probably consider prepending to an existing $PYTHONPATH, rather than hard
resetting it.
To make it easier to change the /share/easybuild prefix, maybe introduce a
PREFIX variable on top, and use it in other definitions.
You should be using $EASYBUILD_PREFIX rather than $EASYBUILDPREFIX, even though
both work (for now). Same goes for build, install, source path.
See
https://github.com/hpcugent/easybuild/wiki/Configuration#legacy-configuration-deprecated
for more details.
With your current settings, just having the PREFIX setting and SOURCE setting
is sufficient, since you have the build/install path "following" prefix (EB
will do that for you).
> Now an admin wants to create an easyblock and easyconfig for a new software.
> (S)he can do that wherever, but than it becomes difficult to contribute. So
> every admin clones the github in the home directory, and follows
> https://github.com/hpcugent/easybuild/wiki/Setting-up-your-own-easyblocks-repository
> with MYEBDIR the github-clone one. Is that correct?
Yes, every admin can host his own easyblock repo, to avoid annoying others. The
key is not $MYEBDIR, EasyBuild doesn't pick that up or something, it's just a
convenient way in the docs. That variable might as well be called $HERE,
$THISISTHELOCATION or whatever.
The key is setting $PYTHONPATH correctly (step 3 in the docs), and making sure
the easybuild/easyblocks namespace is there (mainly step 2).
I'm assuming admins are not sharing an installation account here?
We have a dedicated install user on our site, and just share that account among
people performing installations.
To be clear: I'm not saying that's a better option, at all. It's probably
better to have separate accounts with "EB rights", and a dedicated easybuild
group, and have the install users be a member of that. That would make it
clearer who did which install (which is a lot harder for us right now).
> But then the added files are not available for the installed system until the
> new release of EB, right?
No, if you set $PYTHONPATH like in step 3, EasyBuild will find your local
easyblocks, and will use them when needed.
You can check this using for example "eb --list-easyblocks" .
No reinstallation is required, that's the whole intention of the procedure
explained at
https://github.com/hpcugent/easybuild/wiki/Setting-up-your-own-easyblocks-repository.
Same goes for toolchain support BTW, see
https://github.com/hpcugent/easybuild/wiki/Compiler-toolchains#create-a-new-compiler-toolchain
.
> The same for the easy-configs?
For easyconfig files, you can set up a directory $EASYCONFIGS_HERE, with a
subdirectory easybuild/easyconfigs in there, and add that path to $PYTHONPATH:
export PYTHONPATH=$EASYCONFIGS_HERE:$PYTHONPATH
When you do that, --robot will also find easyconfigs files in there (it
searches in the Python search path, controlled by $PYTHONPATH, for
subdirectories easybuild/easyconfigs, and then walks through them looking for
easyconfig files).
In EasyBuild v1.10 however, you'll be able to pass multiple paths to --robot,
which is almost as convenient (see
https://github.com/hpcugent/easybuild-framework/pull/786, just merged into
develop).
> What if I want to make a small local change in eb file. For example the path
> to the source of licences from intel software. I don't think I want to commit
> that to the git, but I do want to keep track of the change in our
> installation of eb, so that a reinstall has the correct information.
Making site customizations easier are the next big thing we'll be working on,
so hopefully you won't need to manually edit easyconfig files anymore.
For Intel license files specifically, you can just set $INTEL_LICENSE_FILE
outside of EB. The easyblock for Intel tools will pick up $INTEL_LICENSE_FILE,
and it's preferred over the license_file spec in the easyconfig file if it's
set.
For now, you can keep all customized easyconfigs in a separate directory, and
point to it with --robot. Especially with EB v1.10 this will become useful
since you can supply multiple robot paths.
EasyBuild will always use the installed easyconfigs as a last resort (in EB
v1.10).
> I'm not a PythonPATH or Git expert, but I'm sure your answer will help me to
> become one!
I hope the above helps, let us know if you have any problems getting it to work.
regards,
Kenneth