ITA - Come usare environment-modules
July 2020 (227 Words, 2 Minutes)
Introduzione
I file di modulo sono file scritti nel linguaggio di comando degli strumenti Tcl
e vengono utilizzati dal comando module
per caricare ambienti diversi a seconda
delle applicazioni o librerie necessarie.
Ogni volta che un utente su un sistema basato su Unix/Linux esegue applicazioni, la compilazione di un codice, ecc; ciò che l’utente può fare con successo è determinato dall’ambiente di shell corrente.
L’esempio più comune di questo concetto è la variabile d’ambiente PATH. Quando
un utente digita un comando, a tale comando viene fatto riferimento da un nome
percorso completo: ad es. /usr/bin/some_dir/another_dir/command_utility
o
il percorso deve essere specificato nell’ambiente shell PATH dell’utente.
Un altro esempio è quando un particolare utente compila il codice di un’applicazione, spesso diverse librerie devono essere accessibili tramite variabili di ambiente della shell che indirizzano il compilatore su dove cercare (ad esempio LD_LIBRARY_PATH).
Installazione
Debian/ubuntu
sudo apt-get install environment-modules
Fedora
sudo dnf install environment-modules
Configurazione
Il percorso dei propi moduli può essere controllato tramite la variabile
d’ambiente : MODULEPATH
Un buon modo per settata è definirla file ~/.bashrc
nel seguente modo :
source /etc/profile.d/modules.sh
export MODULEPATH=~/.local/modulefiles:$MODULEPATH
La cartella
~/.local/modulefiles
contiene i file di modulo personali, ovviamente può essere gestita anche a livello di sistema.
Comandi utili
Elenca i moduli caricati
module list
Carica un modulo
module load <module>
Elenca i moduli disponibili
module avail
Rimuove un modulo caricato
module rm <module>
Rimuove tutti i moduli caricati
module purge
Esempio di file di modulo
#%Module1.0#####################################################################
##
## module modulefile
##
proc ModulesHelp { } {
global version
puts stderr "\tSets up environment for GCC v$version,"
puts stderr "\tprovided by <user> \n"
}
module-whatis "sets up environment for <module>"
# dichiara delle variabile da usare dentro lo script
set version 7.3.1
set basepath /opt/tool
# carica dei moduli prerequisiti
prereq <other-module>
# esempi per aggiungere a percorsi a gruppi di paht
prepend-path INFOPATH $root/usr/share/info
prepend-path LD_LIBRARY_PATH $root/usr/lib64:$root/usr/lib:$root/usr/lib64/dyninst:$root/usr/lib/dyninst
prepend-path MANPATH $root/usr/share/man
prepend-path PATH $root/usr/bin
prepend-path PYTHONPATH $root/usr/lib64/python2.7/site-packages:$root/usr/lib/python2.7/site-packages
# definire delle vatiabili d'abiente
setenv PCP_DIR $root
setenv PERL5LIB $root/usr/lib64/perl5/vendor_perl:$root/usr/lib/perl5
# definire un conflitto
conflict <module-group>
# un gruppo si crea creando una cartella dentro il MODULEPATH
Riferimenti
- https://wiki.hpc.wvu.edu/hpc_wiki/index.php/Using_Modulefiles
- https://linux.die.net/man/1/module
- https://github.com/shawfdong/modulefiles
- https://github.com/stethewwolf/modulefiles
- https://modules.readthedocs.io/en/stable/modulefile.html
Quest'opera è distribuita con Licenza Creative Commons Attribuzione - Condividi allo stesso modo 4.0 Internazionale Theme Moonwalk