South Green Logo

South Green Trainings pages

Description Installation des Module Environment
Related-course materials HPC Administration Module1
Authors Ndomassi TANDO (ndomassi.tando@ird.fr)
Creation Date 23/09/2019
Last Modified Date 23/09/2019

Sommaire


Definition

URL: https://github.com/cea-hpc/modules

Les Modules Environment permettent une modification dynamique de l’environnement utilisateur http://modules.sourceforge.net/

L’utilisateur peut changer facilement entre différentes versions d’un programme.


Installation:

$ yum install tcl tcl-devel -y
$ wget https://github.com/cea-hpc/modules/releases/download/v4.2.1/modules-4.2.1.tar.gz
$ tar xvfz module-4.2.1.tar.gz
$ cd module-4.2.1
$ ./configure --prefix=/usr/local/modules-4.2.1
$ make
$ make install

Configuration:

Activer les modules au démarrage:

Il faut créer les scripts de démarrage dans /etc/profile.d.

Faire un lien symbolique entre les fichiers répertoire initcréé à l’installation de Module environment dans le répertoire /etc/profile.d avec les commades suivantes:

$ ln -s /usr/local/modules-4.2.1/init/profile.sh /etc/profile.d/modules.sh
 $ ln -s /usr/local/modules-4.2.1/init/profile.csh /etc/profile.d/modules.csh

Définir le chemin des modules à activer par défaut:

Editer le fichier de configuration /usr/local/modules-4.2.1/modulerc.

Ajouter ici tous les répertoires modulefiles que l’on veut activer par défaut au démarrage.

Ajouter une ligne mentionnant chaque répertoire de modulefile précédé par la commande module use

$ module use /usr/local/modules-4.2.1/modulefiles
$ module use /path/to/other/modulefiles

Definir les module à charger par défaut:

Editer /usr/local/modules-4.2.1/modulerc.

Ajouter une ligne mentionnant chaque module à charger précédé de la commande module load :

$ module load foo
$ module load bar

Définir un dépôt personnel de module file:

Chaque utilisateur peut créer son propre dépôt de modulefiles personnel

Créer son propre dépôt:

mkdir /home/path_to_my_modulefiles

Ajoout le chemin du dépôt dans votre shell

Dans votre /home/user/.bashrc, ajouter la ligne suivante:

module use –append /home/path_to_my_modulefiles

Définir le module à lancher au démarrage du shell:

Dans votre /home/user/.bash_profile, ajouter la ligne suivante:

module load program

Créer un modulefile:

Les modulefiles vont être séparéés en 2 catégories:

system: Pour les logigiels systèmes (ex: python, java)

bioinfo: pour les logiciels bioinformatiques

$ mkdir /usr/local/modules-4.2.1/modulefiles/system
$ mkdir /usr/local/modules-4.2.1/modulefiles/bioinfo 

Pour chaque logiciel , créer un répertoire avec le nom du logiciel et un fichier modulefile avec le numéro de version.

Par exemple, le logiciel bioinformatique ncbi-blast v 2.4.0+ aura le fichier de modulefile 2.4.0+ avec le chemin suivant:

/usr/local/modules-4.2.1/modulefiles/bioinfo/ncbi-blast/2.4.0+

Modèle de Modulefile

Les modulefiles sont écrits en langage tcl.

Exemple le logiciel program 1.0

 #%Module1.0#####################################################################
       ##
       ##

       ## Define the  "module help …" command below:
       proc ModulesHelp { } {
       global name version prefix man_path
       puts stderr "\t[module-info name] - loads the compiler env variables"
       puts stderr "\tThe following env variables are set:"
       puts stderr "\t\t\$COMPILER, \$COMPILER_VER, \$CC, \$FC"
       puts stderr "\tThe following env variables are modified:"
       puts stderr "\t\t\$PATH, \$MANPATH, \$LD_LIBRARY_PATH"
       }
       ## Define the "module whatis …" comman with the line below
      module-whatis   "loads the [module-info name] environment"
       
        ## if some modules interfers with this one you can use conflict
       conflict bioinfo/program/2.0

        ## Set the version nuber of your program
         set     version      "1.0"

        ## Set the install path of your program
         set     topdir          /usr/local/bioinfo/program-1.0

        ## Define the PATH and other variable
        prepend-path   PATH             $topdir/bin
        prepend-path   LD_LIBRARY_PATH $topdir/lib
        setenv  CC     gcc    # setenv attributes only  one value  to the variable

### Example of modulefile:

 #%Module1.0#####################################################################
    ##
    ## modules modulefile
    ##
    ## modulefiles/modules.  Generated from modules.in by configure.
    ##
    proc ModulesHelp { } {
    global version modroot

    puts stderr "blast/2.4.0+ version 2.4.0 of blast"
     }

     module-whatis   "Loads version 2.4.0 of blast. BLAST finds regions of similarity between biological sequences"
     conflict bioinfo/blast/2.3.0+


    # for Tcl script use only
    set     version         2.4.0+
    set     topdir          /usr/local/ncbi-blast-2.4.0+





    prepend-path    PATH            $topdir/bin
    prepend-path    MANPATH         $topdir/man

Commandes module:

Voir les modules disponibles :

$ module avail

Obtenir des infos sur un logiciel::

$ module whatis + module name

Charger un module :

$ module load + modulename

Lister les modules chargés :

$ module list

Décharger un module :

$ module unload + modulename

Décharger tous les modules :

$ module purge


License

The resource material is licensed under the Creative Commons Attribution 4.0 International License (here).