stringtranslate.com

Módulos de entorno (software)

El sistema Environment Modules es una herramienta para ayudar a los usuarios a administrar su entorno de shell Unix o Linux , al permitir que grupos de configuraciones de variables de entorno relacionadas se realicen o eliminen dinámicamente.

Los módulos existen 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 de referencia del Programa de modernización de informática de alto rendimiento (HPCMP) del DoD [4] Configuración de referencia del proyecto [5] equipo para los Centros de recursos de supercomputación (DSRC) del DoD participantes.

archivos de módulo

El sistema de módulos se basa en archivos de módulos, [6] que especifican grupos de configuraciones ambientales que deben realizarse juntas. Los Modulefiles se pueden instalar en una ubicación central para uso general o en un directorio de usuario para uso personal. Los archivos de módulo de los módulos de entorno están escritos en Tcl (lenguaje de comandos de herramientas) 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 utilizar múltiples versiones del programa o paquete desde la misma cuenta simplemente cargando el módulo adecuado. Esas dos ventajas fueron fundamentales para que los módulos de entorno formaran parte de la mayoría de las configuraciones de clústeres de HPC. También inspiró varias implementaciones alternativas, como lmod de la Universidad de Texas, que está escrita en Lua en lugar de TCL.

Los archivos de módulo se crean por aplicación y por versión. Se pueden cargar, descargar o cambiar dinámicamente. Además de la capacidad de utilizar múltiples versiones del mismo software, también se puede utilizar 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 se encuentra 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 # Compilación desde el código fuente predeterminado 

El directorio /etc/modulefiles utilizado por algunas distribuciones (o cualquier otro directorio) se puede utilizar después de una compilación desde el código fuente modificando el archivo ${MODULESHOME}/init/.modulespath .

Añade tus propios módulos a la ruta

El módulo ${ MODULESHOME }/modulefiles/use.own esencialmente realiza estos pasos:

 mkdir $HOME /privatemodules 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 puede usar $HOME/privatemodules u otro directorio junto con "module use --append" o la modificación del archivo de configuración especificando 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 null y module-info para mostrar el uso de un archivo de versión dentro de una organización jerárquica y su efecto en la disponibilidad y 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 módulo disponible módulo muestra prueba          

Establezca la primera versión como predeterminada:

 echo '#%Module' > /etc/modulefiles/test/.version echo 'set ModulesVersion "1.0"' >> /etc/modulefiles/test/.version módulo disponible 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 módulo disponible módulo muestra 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)--------------------------- /home/usuario/módulosprivados ----------------- --------- nulo$ módulo  mostrar prueba ---------------------------------------------- --------------------- /etc/modulefiles/test/2.0: módulo-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 del módulo +++ module-info +++++++++++++++++++++++++++++++ banderas = 2 modo = nombre para mostrar = prueba/1.0 especificado = prueba/1.0 shell = bash tipo de shell = sh versión = prueba/1.0 usuario = seguimiento avanzado = 0 tracepat = -.* símbolos = *undef* +++ info ++++++ +++++++++++++++++++++++++++++++ nombre de host = nivel de host local = 1 cargado nulo = 0 biblioteca = /usr/local/lib /tcl8.6 nombredelejecutable = extensiónlibrecompartida = .so tclversion = 8.6 nivel de parche = 8.6.1 ++++++++++++++++++++++++++++++++++ ++++++++++++++ ----------------------------------- --------------------------------

Inicialización automática de módulos

Los módulos de entorno en las distribuciones Scientific Linux, CentOS y RHEL en el paquete de módulos de entorno incluyen scripts module.csh y module.sh para el directorio /etc/profile.d que hacen que la inicialización de los módulos forme parte de la inicialización predeterminada del shell. Una de las ventajas de los módulos de entorno es un único archivo de módulo 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.

inicialización automática de módulos bash, ksh, zsh, sh

/etc/profile.d/modules.sh del archivo etc/global/profile.modules en el directorio de compilación de módulos 3.2.10.

 trampa "" 1 2 3 caso " $0 " en -bash | fiesta | */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 ;; # trampa esac predeterminada 1 2 3                                 

Copie el archivo 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

Un enlace simbólico /etc/profile.d/modules.csh al 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 de Scientific Linux, CentOS y RHEL, los módulos de entorno se encuentran en el paquete de módulos de entorno que se pueden instalar con:

sudo yum instalar módulos-entorno

Una vez instalado, la información del paquete se puede ver con:

rpm -qi módulos-de-entornorpm -ql módulos-de-entorno

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 módulos-entorno

Una vez instalado, la información del paquete se puede ver con:

dpkg -L módulos-de-entorno

Instalación de módulos de entorno en Linux desde la fuente

Aunque la instalación desde un repositorio de distribuciones de Linux utilizando ese administrador de actualizaciones de distribuciones es la más fácil, el software se puede instalar desde la fuente. Resolver dependencias es la tarea más difícil para una instalación desde el código fuente. El ciclo típico de configuración, creación e instalación puede volverse tremendamente 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 de módulos de entorno en el código fuente, incluida la compilación de Tcl (lenguaje de comandos de herramientas) desde el código fuente como una dependencia.

Versión 8.6.1 de Tcl (Lenguaje de comandos de herramientas) creado a partir de /usr/local/src

Aunque los repositorios de PCLinuxOS de 64 bits incluyen Tcl (Lenguaje de comandos de herramientas), no incluyen un paquete de desarrollo con los archivos de configuración necesarios para construir módulos de entorno en Linux desde el código fuente. Al compilar Tcl desde el código fuente, los archivos necesarios estarán disponibles.

Fuente Tcl: http://sourceforge.net/projects/tcl/files/Tcl/

Extraer la fuente después de la descarga

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

Configurar, crear, instalar

 cd  /usr/local/src/tcl8.6.1  unix/configure  hacer  sudo  make  install

Versión 3.2.10 de módulos creados a partir de /usr/local/src

Extraer la fuente después de la descarga

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

Configurar, crear, instalar

cd  /usr/local/src/modules-3.2.10 CPPFLAGS = "-DUSE_INTERP_ERRORLINE"  ./configurehacersudo  hacer  instalar

Ver también

Referencias

  1. ^ 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 Sistemas de Grandes Instalaciones (LISA V) . San Diego, California: 141–152 . Consultado el 9 de febrero de 2014 .
  2. ^ "Descripción de los módulos Kraken de soporte al usuario de NICS". El Instituto Nacional de Ciencias Computacionales (NICS) . Laboratorio Nacional 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 .
  3. ^ "Entorno de software de módulos NERSC". El Centro Nacional de Computación Científica de Investigación Energética (NERSC) . Oficina de Ciencias - Departamento de Energía. 2014-02-07 . Consultado el 19 de febrero de 2014 .
  4. ^ "Uso de módulos para acceder a múltiples versiones de software". Configuración básica . Programa de modernización de la informática de alto rendimiento del Departamento de Defensa (HPCMP). 20 de marzo de 2008. Archivado desde el original el 22 de febrero de 2014 . Consultado el 9 de febrero de 2014 .
  5. ^ "Configuración básica del programa de modernización de la informática de alto rendimiento del Departamento de Defensa". Configuración básica . Programa de modernización de la informática de alto rendimiento del Departamento de Defensa (HPCMP). Archivado desde el original el 22 de febrero de 2014 . Consultado el 9 de febrero de 2014 .
  6. ^ John L. Furlani y Peter W. Osel (julio de 2009). "modulefile: archivos que contienen código Tcl para el paquete de módulos". FuenteForge . página de manual . Consultado el 9 de febrero de 2014 .
  7. ^ John L. Furlani y Peter W. Osel (julio de 2009). "módulo - interfaz de comando para el paquete de Módulos". FuenteForge . página de manual . Consultado el 9 de febrero de 2014 .

enlaces externos

  1. http://modules.sourceforge.net/ - página de inicio del proyecto Módulos de entorno
  2. John L. Furlani, Módulos: Proporcionar un entorno de usuario flexible Actas de la Quinta Conferencia de Administración de Sistemas de Grandes Instalaciones (LISA V) , págs. 141–152, San Diego, CA, 30 de septiembre - 3 de octubre de 1991.
  3. http://lmod.sourceforge.net: implementación alternativa usando LUA en lugar de Tcl
  4. http://www.lysator.liu.se/cmod/ - implementación alternativa usando solo C
  5. Guía del usuario de los módulos medioambientales de PennState
  6. ¡Arrastra tu entorno de diseño a los años 90 con Modules! - SNUB Boston 2001 - Erich Whitney, Axiowave Networks, Mark Sprague, ATI Research