Por que estou recebendo erros de 'Colisão de nomes entre ...' e como corrigi-los?

10

Toda vez que tento iniciar vimou emacsmesmo top(acho que é realmente qualquer comando que use ncurses) em um terminal unix (em um computador de cluster por ssh), recebo um fluxo contínuo de erros de 'colisão de nomes entre xxx' como este:

Name collision between dumb dumb
Name collision between unknown unknown
Name collision between lpr lpr
Name collision between glasstty glasstty
Name collision between vanilla vanilla
Name collision between ansi+local1 ansi+local1
Name collision between ansi+local ansi+local
......
Name collision between terminet1200 terminet1200 terminet1200 terminet1200 terminet1200 terminet1200 terminet1200 terminet1200 terminet1200 terminet1200 terminet1200 terminet1200
Name collision between h19-a h19-a h19-a h19-a h19-a h19-a h19-a h19-a h19-a h19-a h19-a h19-a
Name collision between h19-bs h19-bs h19-bs h19-bs h19-bs h19-bs h19-bs h19-bs h19-bs h19-bs h19-bs h19-bs
Name collision between h19-us h19-us h19-us h19-us h19-us h19-us h19-us h19-us h19-us h19-us h19-us h19-us
Name collision between h19 h19 h19 h19 h19 h19 h19 h19 h19 h19 h19 h19
......

De acordo com algumas pesquisas que fiz na web, isso deve estar relacionado ao TERMCAP / TERMINFO, e acho que isso começou a acontecer depois que usei a tela GNU. De fato, quando estou em uma sessão de tela GNU, o vim e o emacs funcionam bem (exceto alguns mapeamentos de teclas estranhos, por exemplo, teclas de seta não funcionam)

Eu tentei definir a variável de ambiente TERMCAP como um arquivo inexistente, pois já li em algum lugar na internet, e isso fez com que o vim funcionasse (com configurações diferentes das habituais), mas não o emacs ...

Você sabe o que posso fazer para resolver este problema?

Al.
fonte
Qual variante unix você está usando? Se Linux, qual distribuição? (Se você não souber, publique a saída de uname -a.)
Gilles 'SO- stop be evil'
Aqui está a saída: Linux [host] 2.6.18-274.3.1.el5 # 1 SMP sex 26 de agosto 18:49:02 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux
Al.
2
Você provavelmente possui bibliotecas terminfo / termcap duplicadas. Faça isso: execute "strace -o xxx emacs -nw" e saia imediatamente do emacs. Em seguida, abra o arquivo xxx e procure a mensagem de erro. Algumas linhas acima, você deve ver qual termo * bibliotecas foram abertas; provavelmente existem entradas de terminal duplicadas.
angus 27/10
Obrigado, vi no rastreio que ele estava tentando abrir algumas bibliotecas na pasta lib Enthought Python Distribution, que não tinham nada a ver com o emacs, então lembrei de ter adicionado essa pasta ao meu LD_LIBRARY_PATH (é a única maneira que eu sei execute algum código compilado usando bibliotecas compartilhadas específicas ...)
Al.

Respostas:

3

Resolvido: O problema era que eu havia especificado no meu ~/.bashrcarquivo LD_LIBRARY_PATHque continha uma pasta com muitas bibliotecas compartilhadas, algumas das quais provavelmente duplicadas. Eu acho que no meu caso foram as ncursesbibliotecas.

Al.
fonte
você não escreve como contorná-lo: você acabou de colocar as bibliotecas do EPD no final de LD_LIBRARY_PATH?
K.-Michael Aye