Hi payerle,

I believe this caveat means: If you have a naming scheme in place, and
start using a new one, EasyBuild will be confused and start overwriting
software made with the old module naming scheme.

e.g.
You install package foo-2.0.0 in  /software/Core/foo/2.0.0
You want to install bar which depends on foo-2.0.0
EasyBuild will attempt module load foo/2.0.0, find the foo module and just
start building bar

You now switch module naming scheme to also include the toolchain name in
the module name.
You want to install a new package bla with the foss toolchain and bla
 depends on foo:
EasyBuild will attempt module load foss/foo/2.0.0 and not find it, since
the module previously created is called foo/2.0.0
EasyBuild will attempt to install foo/2.0.0 but since you only changed the
module naming and not the install path, it will override
/software/Core/foo/2.0.0

This could also happen if you install packages manually, and not create
modules that have the exact name EasyBuild is looking for.

If you run reinstall --force EasyBuild will also override manually
installed packges, but that's what the --force is for, you should know what
you want when you use --force.

Hope this helps clarifying this a bit?

Regards,
Jens Timmerman

On 22 June 2018 at 18:26, <[email protected]> wrote:

> I am investigating the use of easybuild when we roll out our next cluster.
>
> One concern raised was from
> https://github.com/easybuilders/easybuild/wiki/
> Using-a-custom-module-naming-scheme
> where it clear states that different installation prefixes are needed for
> different easybuild naming schemes, or easybuild for schemeA might delete
> software built with schemeB.
>
> I am still getting familiar with easybuild, but this suggests to me that
> if I
> plan to have a mix of software built with easybuild and software built
> manually and/or with some other software build tools, that they would need
> to
> be installed in distinct software trees.  E.g., if I intend to build
> package
> foo with easybuild, putting it in /software/Core/foo/... and I intend to
> build
> package bar manually, then I better not put bar in /software/Core/bar but
> in
> something like /software2/Core/bar. (Using
> HierarchicalMNS naming scheme)
>
> Is my understanding of this correct?
> Does this only happen if rebuild/force flag is used?
> Does it only happen for the app trying to rebuild (and/or dependencies)?
> ---
> e.g. is it safe to have both foo and bar under /software/Core as long as I
> never issue an easybuild command that would try to rebuild bar (either
> directly or as a dependency)?  E.g., is the foo/bar example somewhat OK,
> but I
> only get burned if I e.g. built foo/1.2.3 with eb and foo/1.2.4 manually?
>
> Is there a list anywhere of the directories that EasyBuild wants full
> control
> over?   Is it the whole
> tree rooted at --prefix, or just the source, build, software install,
> module
> install paths?   to Would it be safe to have foo in
> /software/[Core|Compiler|
> MPI]/foo and bar directly under /software?
>

Reply via email to