Perché visualizzo errori "Nome collisione tra ..." e come posso risolverli?


10

Ogni volta che provo ad avviare vimo emacsaddirittura top(penso che sia in realtà un qualsiasi comando che utilizza ncurses) in un terminale unix (su un computer cluster su ssh), ottengo un flusso continuo di errori 'Nome collisione tra xxx' come questo:

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
......

Secondo alcune ricerche che ho fatto sul web, questo dovrebbe essere correlato a TERMCAP / TERMINFO, e penso che questo abbia avuto inizio dopo aver usato lo schermo GNU. E in effetti, quando mi trovo all'interno di una sessione schermo GNU, vim ed emacs funzionano bene (tranne alcune strane mappature dei tasti, ad esempio i tasti freccia non funzionano)

Ho provato a impostare la variabile d'ambiente TERMCAP su un file inesistente, come ho letto da qualche parte su Internet, e ha fatto funzionare vim (con impostazioni diverse rispetto alle mie solite) ma non emacs ...

Sai cosa posso fare per risolvere questo problema?


Quale variante unix stai usando? Se Linux, quale distribuzione? (Se non lo sai, pubblica l'output di uname -a.)
Gilles 'SO- smetti di essere malvagio'

Ecco l'output: Linux [host] 2.6.18-274.3.1.el5 # 1 SMP ven 26 ago 18:49:02 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux
Al.

2
Probabilmente hai duplicato le librerie terminfo / termcap. Fai questo: esegui "strace -o xxx emacs -nw" ed esce immediatamente da emacs. Quindi aprire il file xxx e cercare il messaggio di errore. Un paio di righe sopra dovresti vedere quale termine * librerie sono state aperte; probabilmente ci sono le tue voci di terminale duplicate.
angus,

Grazie, ho visto nella traccia che stava cercando di aprire alcune librerie nella cartella lib di Enthought Python Distribution, che non aveva nulla a che fare con emacs, quindi mi sono ricordato di aver aggiunto quella cartella al mio LD_LIBRARY_PATH (è l'unico modo che conosco eseguire un codice compilato utilizzando specifiche librerie condivise ...)
Al.

Risposte:


3

Risolto: il problema era che avevo specificato nel mio ~/.bashrce LD_LIBRARY_PATHche conteneva una cartella con molte librerie condivise, alcune delle quali erano probabilmente duplicati di altre. Penso che nel mio caso siano state le ncursesbiblioteche.


non scrivi come aggirarlo: hai appena messo le librerie EPD alla fine di LD_LIBRARY_PATH?
K.-Michael Aye,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.