stringtranslate.com

Módulos de entorno (software)

El sistema de Módulos de entorno es una herramienta que ayuda a los usuarios a administrar su entorno de shell Unix o Linux , permitiendo crear o eliminar dinámicamente grupos de configuraciones de variables de entorno relacionadas.

Los módulos existen desde principios de los años 90 [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 de entorno para administrar casi todo el software. [3] Los módulos de entorno se especifican como un requisito de configuración de línea base del equipo de configuración de línea base del proyecto del Programa de Modernización de Computación de Alto Rendimiento (HPCMP) [ 4] del Departamento de Defensa para los Centros de Recursos de Supercomputación (DSRC) participantes del Departamento de Defensa.

archivos de módulo

El sistema de módulos se basa en archivos de módulos [6] , que especifican grupos de configuraciones de entorno que deben realizarse en conjunto. Los archivos de módulos se pueden instalar en una ubicación central para uso general o en un directorio de usuario para uso personal. Los archivos de módulos de entorno se escriben 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 principal ventaja de los módulos de entorno es que son independientes del shell y admiten todos los shells principales, como bash, ksh, zsh, sh, tcsh y csh. La segunda ventaja clave es que permite utilizar varias 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 fueran parte de la mayoría de las configuraciones de clúster de HPC. También inspiraron 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 para cada aplicación y versión. Se pueden cargar, descargar o cambiar de forma dinámica. Además de la capacidad de usar varias versiones del mismo software, también se pueden usar para implementar políticas del sitio con respecto al acceso y uso de las 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 visualizar 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 usar después de una compilación desde la fuente modificando el archivo ${MODULESHOME}/init/.modulespath .

Añade tus propios módulos a la ruta

El módulo ${MODULESHOME}/modulefiles/ use.own realiza esencialmente 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 y ejecución al directorio /etc/modulefiles. Se puede utilizar el directorio $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 modulefiles predeterminado está vacío inicialmente. Copie el módulo null al directorio modulefiles predeterminado para que se muestre mediante "module avail". 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 module avail y module show:

 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 mostrar prueba          

Establecer 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 avail módulo mostrar prueba             

Después de lo anterior y luego de una nueva instalación desde la fuente, verá lo siguiente:

$ módulo  disponible-------------------- /usr/local/Modules/3.2.10/modulefiles --------------------- punto módulo-git información-del-módulo módulos null use.own------------------------------- /etc/modulefiles ------------------------------- null test/1.0 test/2.0(predeterminado)--------------------------- /home/usuario/módulosprivados -------------------------- null$ 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 diversos valores module-info +++ module-info +++++++++++++++++++++++++++++++++++ flags = 2 mode = display name = test/1.0 specified = test/1.0 shell = bash shelltype = sh version = test/1.0 user = advanced trace = 0 tracepat = -.* symbol = *undef* +++ info ++++++++++++++++++++++++++++++++++++++++++ hostname = localhost level = 1 charged null = 0 library = /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 de las distribuciones Scientific Linux, CentOS y RHEL en el paquete environment-modules incluyen los scripts modules.csh y modules.sh para el directorio /etc/profile.d que hacen que la inicialización de los módulos sea 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 usuarios de shell bash, ksh, zsh, sh, así como 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 | bash | */bash ) . /usr/local/Módulos/predeterminado/init/bash ;; -ksh | ksh | */ksh ) . /usr/local/Módulos/predeterminado/init/ksh ;; -zsh | zsh | */zsh ) . /usr/local/Módulos/predeterminado/init/zsh ;; * ) . /usr/local/Módulos/predeterminado/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/Módulos $ 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 mediante yum y rpm

En las distribuciones Scientific Linux, CentOS y RHEL, los módulos de entorno se encuentran en el paquete environment-modules que se puede instalar con:

sudo yum install módulos de entorno

Una vez instalado el paquete la información se puede visualizar con:

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

Instalación de módulos de entorno en Linux mediante apt y dpkg

En Ubuntu o sistemas que utilizan apt-get, los módulos de entorno se pueden instalar con:

sudo apt-get install módulos de entorno

Una vez instalado el paquete la información se puede visualizar con:

dpkg -L módulos de entorno

Instalación de módulos de entorno en Linux desde el código fuente

Aunque la instalación desde un repositorio de distribuciones Linux utilizando el administrador de actualizaciones de esa distribución es la más sencilla, el software se puede instalar desde el código 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 dolorosamente 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 deTcl (lenguaje de comandos de herramientas)construido desde /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 crear módulos de entorno en Linux desde el código fuente. Al crear Tcl desde el código fuente, los archivos necesarios estarán disponibles.

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

Extraer el código fuente después de descargar

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

Configurar, hacer, instalar

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

Versión 3.2.10 de los módulos creados desde /usr/local/src

Extraer el código fuente después de descargar

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

Configurar, hacer, instalar

cd  /usr/local/src/modules-3.2.10 CPPFLAGS = "-DUSE_INTERP_ERRORLINE"  ./configurehacersudo  make  install

Véase 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 Instalación Grande (LISA V) . San Diego, CA: 141–152 . Consultado el 9 de febrero de 2014 .
  2. ^ "Descripción de módulos Kraken de soporte al usuario de NICS". 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 .
  3. ^ "Entorno de software de módulos NERSC". Centro Nacional de Computación Científica para la Investigación Energética (NERSC) . Oficina de Ciencia - 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 de línea base . Programa de modernización de la informática de alto rendimiento (HPCMP) del Departamento de Defensa. 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 el código Tcl para el paquete Modules». Página del manual de SourceForge . Consultado el 9 de febrero de 2014 .
  7. ^ John L. Furlani y Peter W. Osel (julio de 2009). «module - command interface to the Modules package» (módulo: interfaz de comandos para el paquete Módulos). Página del manual de SourceForge . Consultado el 9 de febrero de 2014 .

Enlaces externos

  1. http://modules.sourceforge.net/ - página de inicio del proyecto Módulos ambientales
  2. John L. Furlani, Módulos: Proporcionar un entorno de usuario flexible, Actas de la Quinta Conferencia de Administración de Sistemas de Instalación Grande (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 que utiliza 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 ambientales de PennState
  6. ¡Lleve su entorno de diseño a patadas y gritos hasta los años 90 con Módulos! - SNUB Boston 2001 - Erich Whitney, Axiowave Networks, Mark Sprague, ATI Research