Múltiples entradas MODULEPATH en .modulesbeginenv

Múltiples entradas MODULEPATH en .modulesbeginenv

Estoy cambiando entre rutas/proyectos de código. En cada lugar tengo diferentes módulos. Para manejar esto hay un script de configuración que modifica qué usar. Esto se maneja con la herramienta 'módulo'.

NOTA: moduleses un paquete para gestionar el entorno que permite reconfigurarlo para que varias aplicaciones estén presentes $PATHo no.

El problema es que cada vez que se actualiza la ruta de un módulo se agrega una nueva entrada al archivo~/.modulesbeginenv

#!/user/bin/env tcsh

module unuse $path1
module use $path2

module add project_module

Este breve ejemplo agrega dos líneas en ~/.modulebeginenvcada llamada. Primero MODULEPATH='paths'sin $path1y luego MODULEPATH='paths'con $path2.

Me parece extraño que el cambio se anexe en lugar de actualizarse. ¿Existe alguna configuración para controlar esto o alguna otra forma de solucionarlo?

Respuesta1

Al observar el uso, el comportamiento que está viendo suena como lo que esperaría del usesubcomando.

  module use [-a |--append] directory [directory...]

De forma predeterminada, este subcomando antepone el directorio a la $MODULEPATHvariable de entorno. Si se utiliza el argumento -ao --append, el directorio se agregará a $MODULEPATH.

Con el subcomando unuseeliminará cualquier ruta que proporcione.

  module unuse directory [directory...]

Elimine el directorio de la variable de entorno $MODULEPATH.

Si desea anular completamente una variable, siempre puede usar el setenvcomando.

  setenv variable value

Establezca la variable de entorno en valor. El setenvcomando también cambiará el entorno del proceso. Una referencia que utilice la matriz asociativa env de Tcl hará referencia a los cambios realizados con el setenvcomando. Los cambios realizados utilizando la matriz asociativa env de Tcl NO cambiarán la variable de entorno del usuario como el comando setenv. Un cambio de entorno realizado de esta manera solo afectará el proceso de análisis del módulo. El setenvcomando también es útil para cambiar el entorno antes del comando execo system. Cuando se descarga un archivo de módulo, setenvse convierte en unsetenv. Si se definió la variable de entorno, se sobrescribirá mientras se carga el archivo del módulo. Una descarga posterior desactivará la variable de entorno: ¡el valor anterior no se puede restaurar! (A menos que lo maneje explícitamente... ver más abajo)....

Referencias

información relacionada