módulo de entorno: no se puede inicializar TCL

módulo de entorno: no se puede inicializar TCL

Estoy intentando crear un módulo python-2.7.10 en un clúster CentOS 6. Mi python-2.7.10archivo de módulo simple es:

#%Module1.0
prepend-path PATH /gpfs0/export/opt/anaconda-2.3.0/bin 
prepend-path MANPATH /gpfs0/export/opt/anaconda-2.3.0/share
prepend-path LD_LIBRARY_PATH /gpfs0/export/opt/anaconda-2.3.0/lib
set-alias python /gpfs0/export/opt/anaconda-2.3.0/bin/python
set-alias python2.7 /gpfs0/export/opt/anaconda-2.3.0/bin/python

Cuando cargo el módulo, por ejemplo

module load python-2.7.10 

Python2.7 funciona bien. Sin embargo, si intento module listo module availomodule unload python-2.7.10

me sale el error

init.c(556):ERROR:161: Cannot initialize TCL

Sin embargo, si pruebo mi octave-4.0.0módulo:

#%Module1.0
prepend-path PATH /gpfs0/export/opt/octave-4.0.0/bin 
prepend-path MANPATH /gpfs0/export/opt/octave-4.0.0/share
prepend-path LD_LIBRARY_PATH /gpfs0/export/opt/octave-4.0.0/lib
set-alias octave /gpfs0/export/opt/octave-4.0.0/bin/octave-4.0.0 
set-alias octave-gui /gpfs0/export/opt/octave-4.0.0/bin/octave-4.0.0 
set-alias octave-cli /gpfs0/export/opt/octave-4.0.0/bin/octave-cli-4.0.0

Puedo module listy module availmuy module unload octave-4.0.0bien. Claramente, mi python-2.7.10módulo se ha roto algo. ¿Cómo puedo solucionar esto?

Respuesta1

Evidentemente, configurar LD_LIBRARY_PATH es de mala forma como se analizóaquí,aquíyaquí. Así que cambié mis malos hábitos y no configuré LD_LIBRARY_PATH y mi problema se resolvió.

EDITAR: Resulta que la raíz de este problema es una diferencia entre el sistema /usr/lib64/libtcl8.5.soy el de anaconda /gpfs0/export/opt/anaconda-2.3.0/lib/libtcl8.5.so. La biblioteca tcl de Anaconda es incompatible con el paquete Módulos. La solución sigue siendo la misma, pero si necesita las bibliotecas anaconda, debe manejarlas caso por caso.

Respuesta2

Encontré el mismo problema y, utilizando la sugerencia del siguiente enlace, pude corregir el problema sin desarmar LD_LIBRARY_PATH. Básicamente, deshabilita la capacidad del módulo cmd para usar LD_LIBRARY_PATH para su ejecución; sin embargo, este cambio no impide que modulecmd modifique la variable LD_LIBRARY_PATH. Los comandos utilizados son: chown nadie:nadie modulecmd chmod ug+s modulecmd

https://sourceforge.net/p/modules/mailman/message/27952351/

información relacionada