Warum erhalte ich die Fehler "Namenskollision zwischen ..." und wie kann ich sie beheben?

10

Jedes Mal, wenn ich versuche, ein Unix-Terminal (auf einem Cluster-Computer über ssh) zu starten vimoder emacsoder sogar top(ich denke, es ist tatsächlich ein Befehl, der ncurses verwendet), erhalte ich einen kontinuierlichen Strom von 'Namenskollision zwischen xxx'-Fehlern wie folgt:

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

Nach einigen Recherchen, die ich im Internet durchgeführt habe, sollte dies mit TERMCAP / TERMINFO zusammenhängen, und ich denke, dies begann, nachdem ich den GNU-Bildschirm verwendet hatte. Wenn ich mich in einer GNU-Bildschirmsitzung befinde, funktionieren vim und emacs einwandfrei (mit Ausnahme einiger seltsamer Tastenzuordnungen, z. B. Pfeiltasten, funktionieren nicht).

Ich habe versucht, die TERMCAP-Umgebungsvariable auf eine nicht vorhandene Datei zu setzen, wie ich irgendwo im Internet gelesen habe, und es hat dazu geführt, dass vim funktioniert (mit anderen Einstellungen als meine üblichen), aber keine Emacs ...

Wissen Sie, was ich tun kann, um dieses Problem zu lösen?

Al.
quelle
Welche Unix-Variante verwenden Sie? Wenn Linux, welche Distribution? (Wenn Sie nicht wissen, posten Sie die Ausgabe von uname -a.)
Gilles 'SO - hör auf böse zu sein'
Hier ist die Ausgabe: Linux [Host] 2.6.18-274.3.1.el5 # 1 SMP Fr 26. August 18:49:02 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux
Al.
2
Sie haben wahrscheinlich terminfo / termcap-Bibliotheken dupliziert. Gehen Sie dazu folgendermaßen vor: "strace -o xxx emacs -nw" ausführen und emacs sofort beenden. Öffnen Sie dann die Datei xxx und suchen Sie nach der Fehlermeldung. Ein paar Zeilen darüber sollten Sie sehen, welche Term * -Bibliotheken geöffnet wurden. Es gibt wahrscheinlich Ihre doppelten Terminaleinträge.
Angus
Vielen Dank, ich habe in der Ablaufverfolgung gesehen, dass versucht wurde, einige Bibliotheken im Ordner "Enthought Python Distribution lib" zu öffnen, was nichts mit Emacs zu tun hatte. Daher erinnerte ich mich, dass ich diesen Ordner meinem LD_LIBRARY_PATH hinzugefügt hatte (dies ist der einzige Weg, den ich kenne Führen Sie kompilierten Code mit bestimmten gemeinsam genutzten Bibliotheken aus ...)
Al.

Antworten:

3

Gelöst: Das Problem war ich in meinem angegeben hatte ~/.bashrceine , LD_LIBRARY_PATHdie einen Ordner mit vielen gemeinsam genutzten Bibliotheken enthalten, von denen einige wahrscheinlich von anderen dupliziert waren. Ich denke in meinem Fall waren es die ncursesBibliotheken.

Al.
quelle
Sie schreiben nicht, wie Sie es umgehen können: Haben Sie gerade die EPD-Bibliotheken am Ende von LD_LIBRARY_PATH eingefügt?
K.-Michael Aye