module de ambiente: Não é possível inicializar o TCL

3

Estou tentando criar um módulo python-2.7.10 em um cluster do CentOS 6. Meu arquivo simples do módulo python-2.7.10 é:

#%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

Quando carrego o módulo, por ex.

module load python-2.7.10 

python2.7 funciona bem. No entanto, se eu tentar module list ou module avail ou module unload python-2.7.10

Eu recebo o erro

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

No entanto, se eu tentar o meu módulo octave-4.0.0 :

#%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

Eu posso module list , module avail e module unload octave-4.0.0 bem. Claramente, meu módulo python-2.7.10 quebrou alguma coisa. Como faço para corrigir isso?

    
por irritable_phd_syndrom 30.09.2015 / 17:47

2 respostas

5

Evidentemente, configurar LD_LIBRARY_PATH é uma forma incorreta, conforme discutido aqui , aqui e aqui . Então eu mudei minhas formas malignas e não defini LD_LIBRARY_PATH e meu problema foi resolvido.

EDIT : Acontece que a raiz deste problema é uma diferença entre o sistema /usr/lib64/libtcl8.5.so e /gpfs0/export/opt/anaconda-2.3.0/lib/libtcl8.5.so do anaconda. A biblioteca tcl do Anaconda é incompatível com o pacote Modules. A solução permanece a mesma, mas se você precisar das bibliotecas do anaconda, você precisa lidar com elas caso a caso.

    
por 05.10.2015 / 13:33
1

Encontrei o mesmo problema e, usando a sugestão do link abaixo, consegui corrigir o problema sem desativar o LD_LIBRARY_PATH. Basicamente, você desabilita a capacidade do modulecmd de usar o LD_LIBRARY_PATH para sua execução; no entanto, essa alteração não impede modulecmd de modificar a variável LD_LIBRARY_PATH. Os comandos usados são: chown ninguém: ninguém modulecmd chmod ug + s modulecmd

link

    
por 18.11.2016 / 18:10