Miljömoduler (mjukvara)
Stabil frisättning | 5.2.0 / 8 november 2022
|
---|---|
Förvar | |
Operativ system | Unix-liknande |
Licens | GNU General Public License#Version 2 |
Hemsida |
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
- Tcl
- Xsede-programvarumiljöer . The Extreme Science and Engineering Discovery Environment ― National Science Foundation
- Beskrivning av NICS-moduler ― National Institute for Computational Sciences vid Oak Ridge National Laboratory ― Department of Energy
- Lmod ― Lua -baserat modulsystem
- Spack ― Pakethanterare för HPC-programvara utvecklad vid Lawrence Livermore National Laboratory
externa länkar
- http://modules.sourceforge.net/ - hemsida för projektet Environment Modules
- 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.
- http://lmod.sourceforge.net - alternativ implementering med LUA istället för Tcl
- http://www.lysator.liu.se/cmod/ - alternativ implementering med endast C
- Användarhandbok för PennState Environment Modules
- Dra din designmiljö kickande och skrikande in på 90-talet med moduler! - SNUB Boston 2001 - Erich Whitney, Axiowave Networks, Mark Sprague, ATI Research