El sistema de módulos de entorno es una herramienta para ayudar a los usuarios a administrar su entorno de shell Unix o Linux , al permitir que se creen o eliminen dinámicamente grupos de configuraciones de variables de entorno relacionadas.
![]() | |
Lanzamiento estable | 4.7.1 / 6 de abril de 2021 |
---|---|
Repositorio | ![]() |
Sistema operativo | Tipo Unix |
Licencia | Licencia pública general GNU n.o versión 2 |
Sitio web | módulos |
Los módulos han existido desde principios de la década de 1990 [1] y se utilizan en algunos de los centros informáticos más grandes [2] para implementar múltiples versiones de diferentes herramientas de software para los usuarios. El Centro Nacional de Computación Científica de Investigación Energética (NERSC) informa que utilizan módulos ambientales para administrar casi todo el software. [3] Los módulos de entorno se especifican como un requisito de configuración básica del equipo del Programa de Modernización de Computación de Alto Rendimiento del DoD (HPCMP) [4] Configuración básica del proyecto [5] para los Centros de Recursos de Supercomputación del DoD (DSRC) participantes.
archivos de módulo
El sistema de módulos se basa en archivos de módulo, [6] que especifican grupos de configuraciones de entorno que deben realizarse juntos. Los archivos de módulo se pueden instalar en una ubicación central para uso general o en un directorio de usuario para uso personal. Entorno Los módulos modulefiles están escritos en Tcl (Tool Command Language) y son interpretados por el programa modulecmd a través de la interfaz de usuario del módulo [7] .
La ventaja clave de los módulos de entorno es que es independiente del shell y admite todos los shells principales, como bash, ksh, zsh, sh, tcsh y csh. La segunda ventaja clave es que permite usar múltiples versiones del programa o paquete desde la misma cuenta con solo cargar el módulo adecuado. Esas dos ventajas fueron fundamentales para que los módulos de entorno formen parte de la mayoría de las configuraciones de clúster de HPC. También inspiró varias implementaciones alternativas, como lmod de la Universidad de Texas, que está escrito en Lua en lugar de TCL.
Los archivos de módulo se crean por aplicación por versión. Pueden cargarse, descargarse o conmutarse dinámicamente. Junto con la capacidad de usar múltiples versiones del mismo software, también se puede usar para implementar políticas del sitio con respecto al acceso y uso de aplicaciones.
directorio de archivos de módulo predeterminado
La ruta de búsqueda de módulos predeterminada está en un archivo de configuración oculto que puede mostrar con:
$ cat $ { MODULESHOME } /init/.modulespath / etc / modulefiles # CentOS, Scientific Linux, RHEL / usr / local / Modules / modulefiles # Construir desde la fuente predeterminada
El directorio / etc / modulefiles utilizado por algunas distribuciones (o cualquier otro directorio) se puede utilizar después de una compilación desde la fuente modificando el $ {MODULESHOME} /init/.modulespath archivo.
Agregue sus propios módulos a la ruta
La El módulo $ {MODULESHOME} / modulefiles / use.own esencialmente realiza estos pasos:
mkdir $ HOME / módulos privados cp $ { MODULESHOME } / modulefiles / null $ HOME / privatemodules uso del módulo --append $ HOME / privatemodules
Utilice un archivo de versión dentro de una organización jerárquica
Los comandos de esta sección requieren acceso de lectura / escritura / ejecución al directorio / etc / modulefiles. En su lugar, se pueden usar $ HOME / privatemodules u otro directorio junto con "module use --append" o la modificación del archivo de configuración que especifica la ruta de búsqueda de módulos predeterminada.
El directorio de archivos de módulo predeterminado está vacío inicialmente. Copie el módulo nulo en el directorio de archivos de módulo predeterminado para que se muestre como "módulo disponible". A continuación, se utilizan los módulos nulo y de información del módulo para mostrar el uso de un archivo de versión dentro de una organización jerárquica y su efecto sobre la disponibilidad del módulo y la presentación del módulo:
mkdir / etc / modulefiles / test cp $ { MODULESHOME } / modulefiles / null /etc/modulefiles/test/2.0 cp $ { MODULESHOME } / modulefiles / module-info /etc/modulefiles/test/1.0 disponibilidad del módulo módulo mostrar prueba
Establezca la primera versión como predeterminada:
echo '#% Module' > /etc/modulefiles/test/.version echo 'set ModulesVersion "1.0"' >> /etc/modulefiles/test/.version disponibilidad del módulo módulo mostrar prueba módulo mostrar prueba / 2.0
Cambie a la versión más nueva como predeterminada con:
rm /etc/modulefiles/test/.version echo '#% Module' > /etc/modulefiles/test/.version echo 'set ModulesVersion "2.0"' >> /etc/modulefiles/test/.version disponibilidad del módulo módulo mostrar prueba
Después de lo anterior, después de una instalación nueva desde la fuente, verá:
$ módulo disponible-------------------- /usr/local/Modules/3.2.10/modulefiles ------------------ --- dot module-git module-info módulos null use.own------------------------------- / etc / modulefiles --------------- ---------------- prueba nula / prueba 1.0 / 2.0 (predeterminado)--------------------------- / inicio / usuario / módulos privados ----------------- --------- nulo$ módulo mostrar prueba ---------------------------------------------- --------------------- /etc/modulefiles/test/2.0:module-whatis no hace absolutamente nada -------------------------------------------- -----------------------$ módulo mostrar prueba / 1.0 -------------------------------------------- ----------------------- /etc/modulefiles/test/1.0:module-whatis devuelve todos los valores de información de módulo +++ información de módulo +++++++++++++++++++++++++++++ banderas = 2 modo = nombre para mostrar = prueba / 1.0 especificado = prueba / 1.0 shell = bash shelltype = sh versión = prueba / 1.0 usuario = seguimiento avanzado = 0 tracepat = -. * símbolos = * undef * +++ info ++++++ +++++++++++++++++++++++++++++++ nombre de host = nivel de host local = 1 nulo cargado = 0 biblioteca = / usr / local / lib /tcl8.6 nameofexecutable = sharedlibextension = .so tclversion = 8.6 patchlevel = 8.6.1 +++++++++++++++++++++++++++++++ +++++++++++++++ ----------------------------------- --------------------------------
Inicialización automática de módulos
Los módulos de entorno en distribuciones Scientific Linux, CentOS y RHEL en el paquete de módulos de entorno incluyen modules.csh y scripts modules.sh para el /etc/profile.d directorio que hace que la inicialización de módulos sea parte de la inicialización de shell predeterminada. Una de las ventajas de los módulos de entorno es un archivo de módulo único que admite bash, ksh, zsh, sh, así como usuarios de shell tcsh y csh para la configuración e inicialización del entorno. Esto hace que la gestión de entornos complejos sea un poco menos complicada.
Para una compilación de origen, la automatización para todos los usuarios se puede configurar manualmente.
bash, ksh, zsh, sh inicialización automática de módulos
/etc/profile.d/modules.sh del etc / global / profile.modules en el directorio de construcción de módulos 3.2.10.
trampa "" 1 2 3 caso " $ 0 " en -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 ;; # esac predeterminada trampa 1 2 3
Copia el etc / global / profile.modules del directorio de compilación de módulos 3.2.10 al directorio de inicialización del sistema:
$ sudo cp etc / global / profile.modules /etc/profile.d/modules.sh
Agregue un enlace simbólico de la versión 3.2.10 para las direcciones genéricas anteriores:
$ cd / usr / local / Modules $ sudo ln -sT 3 .2.10 predeterminado
tcsh, inicialización automática de módulos csh
A /etc/profile.d/modules.csh enlace simbólico al El archivo etc / global / profile.modules en el directorio de compilación de módulos 3.2.10 puede habilitar la inicialización automática de módulos para estos usuarios.
Instalación en Linux
Instalación de módulos de entorno en Linux usando yum y rpm
En las distribuciones Scientific Linux, CentOS y RHEL, los módulos de entorno están en el paquete de módulos de entorno que se pueden instalar con:
sudo yum instalar módulos de entorno
Una vez instalado, la información del paquete se puede ver con:
rpm -qi entorno-módulosrpm -ql entorno-módulos
Instalación de módulos de entorno en Linux usando apt y dpkg
En Ubuntu o sistemas que usan apt-get, los módulos de entorno se pueden instalar con:
sudo apt-get install entorno-módulos
Una vez instalado, la información del paquete se puede ver con:
dpkg -L entorno-módulos
Instalación de módulos de entorno en Linux desde la fuente
Aunque instalar desde un repositorio de distribuciones de Linux utilizando ese administrador de actualizaciones de distribuciones es lo más fácil, el software se puede instalar desde la fuente. Resolver dependencias es la tarea más difícil de una instalación desde el origen. El ciclo típico de configuración, creación e instalación puede volverse terriblemente lento, ya que cada mejora de configuración revela otra dependencia que no está disponible en su entorno predeterminado. Esta sección incluye los pasos para instalar el paquete Environment Modules en la fuente, incluida la compilación de Tcl (Tool Command Language) desde la fuente como una dependencia.
Versión 8.6.1 de Tcl (Tool Command Language) construida a partir de / usr / local / src
Aunque los repositorios de 64 bits de PCLinuxOS incluyen Tcl (Tool Command Language) , no incluyen un paquete de desarrollo con los archivos de configuración necesarios para construir módulos de entorno en Linux desde la fuente. La construcción de Tcl desde la fuente hará que los archivos necesarios estén disponibles.
Fuente Tcl: http://sourceforge.net/projects/tcl/files/Tcl/
Extraer la fuente después de descargar
cd / usr / local / src tar -xvzf ~ / Downloads / tcl8.6.1-src.tar.gz
Configurar, hacer, instalar
cd /usr/local/src/tcl8.6.1 unix / configure fabricar sudo make install
3.2.10 versión de módulos construidos a partir de / usr / local / src
Extraer la fuente después de descargar
cd / usr / local / src tar -xvzf ~ / Downloads / modules-3.2.10.tar.gz
Configurar, hacer, instalar
cd /usr/local/src/modules-3.2.10 CPPFLAGS = "-DUSE_INTERP_ERRORLINE" ./configurefabricarsudo make install
Ver también
- Tcl # como lenguaje de comandos de la herramienta
- Entornos de software Xsede . El entorno de descubrimiento de ciencias e ingeniería extremas - National Science Foundation
- Descripción de los módulos de NICS - El Instituto Nacional de Ciencias Computacionales en el Laboratorio Nacional de Oak Ridge - Departamento de Energía
- Lmod - sistema de módulos basado en Lua
- Spack - Administrador de paquetes para el software HPC desarrollado en el Laboratorio Nacional Lawrence Livermore
Referencias
- ^ Furlani, John L. (30 de septiembre - 3 de octubre de 1991). "Módulos: proporcionar un entorno de usuario flexible" (PDF) . Actas de la Quinta Conferencia de Administración de Grandes Sistemas de Instalación (LISA V) . San Diego, CA: 141–152 . Consultado el 9 de febrero de 2014 .
- ^ "Descripción de los módulos de Kraken de soporte de usuario de NICS" . El Instituto Nacional de Ciencias Computacionales (NICS) . Laboratorio Nacional de Oak Ridge - Departamento de Energía. 22 de mayo de 2011. Archivado desde el original el 22 de febrero de 2014 . Consultado el 9 de febrero de 2014 .
- ^ "Entorno de software de módulos NERSC" . El Centro Nacional de Computación Científica de Investigación en Energía (NERSC) . Oficina de Ciencias - Departamento de Energía. 2014-02-07 . Consultado el 19 de febrero de 2014 .
- ^ "Uso de módulos para acceder a múltiples versiones de software" . Configuración de línea de base . Programa de Modernización de Computación de Alto Rendimiento del DoD (HPCMP). 20 de marzo de 2008. Archivado desde el original el 22 de febrero de 2014 . Consultado el 9 de febrero de 2014 .
- ^ "Configuración básica del programa de modernización de la informática de alto rendimiento del DoD" . Configuración de línea de base . Programa de Modernización de Computación de Alto Rendimiento del DoD (HPCMP). Archivado desde el original el 22 de febrero de 2014 . Consultado el 9 de febrero de 2014 .
- ^ John L. Furlani y Peter W. Osel (julio de 2009). "modulefile - archivos que contienen código Tcl para el paquete de módulos" . SourceForge . página de manual . Consultado el 9 de febrero de 2014 .
- ^ John L. Furlani y Peter W. Osel (julio de 2009). "módulo - interfaz de comando para el paquete de módulos" . SourceForge . página de manual . Consultado el 9 de febrero de 2014 .
enlaces externos
- http://modules.sourceforge.net/ - página de inicio del proyecto Environment Modules
- John L. Furlani, Módulos: Proporcionar un entorno de usuario flexible Actas de la Quinta Conferencia de Administración de Grandes Sistemas de Instalación (LISA V) , págs. 141-152, San Diego, CA, 30 de septiembre - 3 de octubre de 1991.
- http://lmod.sourceforge.net - implementación alternativa usando LUA en lugar de Tcl
- http://www.lysator.liu.se/cmod/ - implementación alternativa usando solo C
- Guía del usuario de los módulos de entorno de PennState
- ¡Arrastre su entorno de diseño pateando y gritando a los años 90 con Módulos! - SNUB Boston 2001 - Erich Whitney, Axiowave Networks, Mark Sprague, ATI Research