
Estoy intentando crear un módulo python-2.7.10 en un clúster CentOS 6. Mi python-2.7.10
archivo 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 list
o module avail
omodule 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.0
mó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 list
y module avail
muy module unload octave-4.0.0
bien. Claramente, mi python-2.7.10
mó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.so
y 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