Miljömoduler (mjukvara)

Miljömoduler
Stabil frisättning
5.2.0 / 8 november 2022 ; 3 månader sedan ( 2022-11-08 )
Förvar
Operativ system Unix-liknande
Licens GNU General Public License#Version 2
Hemsida moduler .sourceforge .net

Environment Modules- systemet är ett verktyg som hjälper användare att hantera sin Unix- eller Linux -skalmiljö, genom att tillåta grupper av relaterade miljövariabler att göras eller ta bort dynamiskt.

Moduler har funnits sedan början av 1990-talet och används på några av de största datorcenterna för att distribuera flera versioner av olika mjukvaruverktyg till användare. National Energy Research Scientific Computing Center (NERSC) rapporterar att de använder miljömoduler för att hantera nästan all mjukvara. Environment Modules specificeras som ett Baseline Configuration-krav för DoD High Performance Computing Modernization Program (HPCMP) Project Baseline Configuration team för deltagande DoD Supercomputing Resource Centers (DSRC).

modulfiler

Modulsystemet är baserat på modulfiler, som anger grupper av miljöinställningar som måste göras tillsammans. Modulfiler kan installeras på en central plats för allmänt bruk, eller i en användarkatalog för personligt bruk. Miljö Moduler modulfiler skrivs i Tcl (Tool Command Language) och tolkas av modulecmd-programmet via modulens användargränssnitt.

Den viktigaste fördelen med miljömoduler är att den är skaloberoende och stöder alla större skal som bash, ksh, zsh, sh, tcsh och csh. Den andra viktiga fördelen är att det gör det möjligt att använda flera versioner av programmet eller paketet från samma konto genom att bara ladda rätt modul. Dessa två fördelar var avgörande för att miljömoduler blev en del av de flesta HPC-klusterinställningar. Det inspirerade också flera alternativa implementeringar som lmod från University of Texas, som är skriven i Lua istället för TCL.

modulfiler skapas per applikation per version. De kan laddas dynamiskt, avlastas eller kopplas om. Tillsammans med möjligheten att använda flera versioner av samma programvara kan den också användas för att implementera webbplatspolicyer för åtkomst och användning av applikationer.

Standard modulfiler katalog

Standardmodulernas sökväg finns i en dold konfigurationsfil som du kan visa med:


 $  cat  ${  MODULESHOME  }  /init/.modulespath  /etc/modulefiles # CentOS, Scientific Linux, RHEL  /usr/local/Modules/modulefiles # Bygg från källstandard 

Katalogen /etc/modulefiles som används av vissa distributioner (eller vilken annan katalog som helst) kan användas efter en build från källkod genom att modifiera filen ${MODULESHOME}/init/.modulespath .

Lägg till dina egna moduler till sökvägen

Modulen ${MODULESHOME}/modulefiles/ use.own utför i huvudsak dessa steg:

 mkdir  $HOME  /privatemodules cp  ${  MODULESHOME  }  /modulefiles/null  $HOME  /privatemodules modulanvändning --append  $HOME  /privatemodules 

Använd en versionsfil inom en hierarkisk organisation

Kommandon i det här avsnittet kräver läs/skriv/kör åtkomst till katalogen /etc/modulefiles. $HOME/privatemodulerna eller en annan katalog kan användas istället tillsammans med "modulanvändning --append" eller modifiering av konfigurationsfilen som anger standardmodulernas sökväg.

Standardkatalogen för moduler är tom initialt. Kopiera noll-modulen till standardmodulfiles-katalogen för att den ska visas som "modul tillgänglig". Följande använder modulerna null och modulinfo för att visa användningen av en versionsfil inom en hierarkisk organisation och deras effekt på modultillgänglighet och modulvisning:

 mkdir /etc/modulefiles/test cp  ${  MODULESHOME  }  /modulefiles/null /etc/modulefiles/test/2.0 cp  ${  MODULESHOME  }  /modulefiles/module-info /etc/modulefiles/test/1.0 modul tillgänglig modul visa  test 

Ställ in den första versionen som standard:

    echo  '#%Module'  > /etc/modulefiles/test/.version  echo  'set ModulesVersion "1.0"'  >> /etc/modulefiles/test/.version modul tillgänglig modul visa  testmodul  visa test/2.0 

Byt till den nyare versionen som standard med:

   rm /etc/modulefiles/test/.version  echo  '#%Module'  > /etc/modulefiles/test/.version  echo  'set ModulesVersion "2.0"'  >> /etc/modulefiles/test/.version modulen avail module show  test 

Efter ovanstående skulle du se en ny installation från källan:











































 $  modul tillgänglig  -------------------- /usr/local/Modules/3.2.10/modulefiles --------------- ------  dot module-git module-info modules null use.own  ------------------------------------- / etc/modulefiles -------------------------------  null test/1.0 test/2.0(standard)  ------ --------------------- /home/user/privatemodules ----------------------------- ---  null  $  modul visa  test  ------------------------------------------ --------------------------  /etc/modulefiles/test/2.0:  module-whatis gör absolut ingenting  ---------- -------------------------------------------------- -------  $  modul show test/1.0  -------------------------------------------- ------------------------------  /etc/modulefiles/test/1.0:  module-whatis returnerar alla olika modulinformationsvärden  + ++ modul-info +++++++++++++++++++++++++++++++  flaggor = 2  läge = visningsnamn  = test/1.0  specificerat = test /1.0  skal = bash  skaltyp = sh  version = test/1.0  användare = avancerad  spårning = 0  tracepat = -.*  symboler = *undef*  +++ info +++++++++++++++++ +++++++++++++++++++++  värdnamn = localhost  level = 1  laddad null = 0  bibliotek = /usr/local/lib/tcl8.6  nameofexecutable =  sharedlibextension = .so  tclversion = 8.6  patchnivå = 8.6.1  +++++++++++++++++++++++++++++++++++++++++ ++++  ---------------------------------------------------- ---------------------- 

Automatisk initiering av moduler

Miljömoduler på Scientific Linux-, CentOS- och RHEL-distributioner i miljömodulpaketet inkluderar modules.csh och modules.sh -skript för katalogen /etc/profile.d som gör initiering av moduler till en del av standardskalinitieringen. En av fördelarna med miljömoduler är en enda modulfil som stöder bash, ksh, zsh, sh samt tcsh- och csh-skalanvändare för miljöinställning och initiering. Detta gör att hantera komplexa miljöer lite mindre komplicerat.

För en källbygge kan automatiseringen för alla användare konfigureras manuellt.

bash, ksh, zsh, sh automatisk initiering av moduler

/etc/profile.d/modules.sh från filen etc/global/profile.modules i 3.2.10 modules build-katalog.

     
 
    
 
 
     trap  ""  1  2  3  fall  "  $0  "  i  -bash  |  bash  |  */bash  )  . /usr/local/Modules/default/init/bash   ;;  -ksh  |  ksh  |  */ksh  )  . /usr/local/Modules/default/init/ksh   ;;  -zsh  |  zsh  |  */zsh  )  . /usr/local/Modules/default/init/zsh   ;;  *  )  . /usr/local/Modules/default/init/sh   ;;  # standard  esac  trap  1  2  3 

Kopiera filen etc/global/profile.modules från 3.2.10 modules build-katalog till systeminitieringskatalogen:

 $  sudo cp etc/global/profile.modules /etc/profile.d/modules.sh 

Lägg till en symbolisk länk för version 3.2.10 för ovanstående generiska adresser:

 $  cd  /usr/local/Moduler  $  sudo ln -sT  3  .2.10 standard 

tcsh, csh automatisk initiering av moduler

En /etc/profile.d/modules.csh symbolisk länk till filen etc/global/profile.modules i 3.2.10 modules build-katalogen kan möjliggöra automatisk initiering av moduler för dessa användare.

Installerar på Linux

Installera miljömoduler på Linux med yum och rpm

På Scientific Linux-, CentOS- och RHEL-distributioner finns Environment Modules i miljömodulpaketet som kan installeras med:

sudo yum installera miljömoduler

Efter installationen kan paketinformationen ses med:

rpm -qi miljö-moduler rpm -ql miljö-moduler

Installera miljömoduler på Linux med apt och dpkg

På Ubuntu eller system som använder apt-get kan miljömoduler installeras med:

sudo apt-get installera miljömoduler

Efter installationen kan paketinformationen ses med:

dpkg -L miljömoduler

Installera miljömoduler på Linux från källan

Även om installation från ett Linux-distributionsförråd med den distributionsuppdateringshanteraren är det enklaste som programvaran kan installeras från källan. Lösa beroenden är den svåraste uppgiften för en installation från källan. Den typiska konfigurera, tillverka, installera cykeln kan bli smärtsamt långsam eftersom varje konfigurationsförbättring avslöjar ett annat beroende som inte är tillgängligt i din standardmiljö. Det här avsnittet innehåller stegen för att installera Environment Modules-paketet på källkod, inklusive kompilering av Tcl (Tool Command Language) från källan som ett beroende.

8.6.1 version av Tcl (Tool Command Language) byggd från /usr/local/src

Även om PCLinuxOS 64-bitars förråd inkluderar Tcl (Tool Command Language) inkluderar de inte ett utvecklingspaket med de konfigurationsfiler som krävs för att bygga miljömoduler på Linux från källkod. Att bygga Tcl från källan kommer att göra de nödvändiga filerna tillgängliga.

Tcl Källa: http://sourceforge.net/projects/tcl/files/Tcl/

Extrahera källan efter nedladdning

  cd  /usr/local/src tar -xvzf ~/Downloads/tcl8.6.1-src.tar.gz 

Konfigurera, tillverka, installera

  cd  /usr/local/src/tcl8.6.1 unix/configure gör sudo make install 

3.2.10 version av moduler byggda från /usr/local/src

Extrahera källan efter nedladdning

  cd  /usr/local/src tar -xvzf ~/Downloads/modules-3.2.10.tar.gz 

Konfigurera, tillverka, installera

 cd  /usr/local/src/modules-3.2.10  CPPFLAGS  =  "-DUSE_INTERP_ERRORLINE"  ./configure gör sudo make install 

Se även

externa länkar

  1. http://modules.sourceforge.net/ - hemsida för projektet Environment Modules
  2. John L. Furlani, Modules: Providing a Flexible User Environment Proceedings of the Fifth Large Installation Systems Administration Conference (LISA V) , s. 141–152, San Diego, CA, 30 september - 3 oktober 1991.
  3. http://lmod.sourceforge.net - alternativ implementering med LUA istället för Tcl
  4. http://www.lysator.liu.se/cmod/ - alternativ implementering med endast C
  5. Användarhandbok för PennState Environment Modules
  6. Dra din designmiljö kickande och skrikande in på 90-talet med moduler! - SNUB Boston 2001 - Erich Whitney, Axiowave Networks, Mark Sprague, ATI Research