Table of Contents | ||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...
0. Define local module command (only once)
To utilize local modules, we suggest creating a bash command such as localmod
that contains essential setup within your $HOME/.bashrc
. The provided set of commands below will create a local module directory based on LOCALMOD_DIR
and then define the localmod
command in your $HOME/.bashrc
.
...
Code Block | ||
---|---|---|
| ||
LOCALMOD_DIR=$HOME/localmod # *** EDITABLE, set to an empty path *** mkdir -p ${LOCALMOD_DIR} # Create the directory if not already exist cat << Eof >> $HOME/.bashrc # Define the below "localmod" function in your .bashrc function localmod(){ export EASYBUILD_PREFIX=${LOCALMOD_DIR} module use \${EASYBUILD_PREFIX}/modules/all export EASYBUILD_OPTARCH=x86-milan echo "*** Import modules at \${EASYBUILD_PREFIX} on LANTA ***" } Eof |
Expand | |||||
---|---|---|---|---|---|
| |||||
|
Expand | ||
---|---|---|
| ||
|
...
Enable local module by executing the command defined in Step 0 →
localmod
Load EasyBuild →
module load EasyBuild
Check your current EasyBuild configuration →
eb --show-config
.
The Note: theinstallpath
should be set to a local directory that you have write permission.
...
Open the .eb file using a text editor such as vi
, then edit the following
toolchain
Correct the toolchain information, e.g.,toolchain = {'name': 'cpeCray', 'version': '23.03'}
. This must be consistent with the CPE toolchain and file name chosen in Step 2.builddependencies and/or dependencies
Check if the software dependencies are available in ThaiSC modules by usingmodule spider <dep-name>
.
For example,module spider binutils
. If available, you could use them by editing each dependency information('<dep-name>', '<dep-version>', '<dep-suffix>', <dep-toolchain>)
where<dep-name>
is the dependency name, e.g.,binutils
.<dep-version>
is the dependency version, e.g.,2.40
.<dep-suffix>
and<dep-toolchain>
are optional. The default will use the same toolchain as in Step 3.1 without any suffix. This is recommended. For more details, visit writing .eb.
...
Execute
eb -D --robot-paths=$(pwd) <the-eb-file>.eb
to do a short dry run and check for dependencies.If the command run successfully, it will display build status of the software’s dependencies.
(You could ignore warning likeWARNING: Failed to determine toolchain hierarchy for ...
)On the other hand, if you get
ERROR: Missing dependencies: xxx/yyy-zzz
, this means that the EasyConfig file of the library/software namexxx
with versionyyy
using toolchainzzz
is missing. You need to get the EasyConfig file for the dependencyxxx/yyy-zzz
by doing Step 2 and 3 again. That is, you also need to repeatedly do Step 2 and 3 for all unavailable dependencies required by the target software, and put them in the same directory.
To install the software, execute
Code Block language bash eb -r --robot-paths=$(pwd) --parallel=1 --trace --tmpdir=$(pwd) <the-eb-file>.eb
Expand | ||
---|---|---|
| ||
|
Note |
---|
Some software may not support parallel build; therefore, |
...