Pourquoi est-ce que j'obtiens des erreurs de «collision de noms entre…» et comment puis-je les corriger?

10

Chaque fois que j'essaie de lancer vimou emacsou même top(je pense que c'est en fait n'importe quelle commande qui utilise ncurses) dans un terminal Unix (sur un ordinateur de cluster via ssh), j'obtiens un flux continu d'erreurs de 'collision de noms entre xxx' comme ceci:

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

Selon certaines recherches que j'ai faites sur le Web, cela devrait être lié à TERMCAP / TERMINFO, et je pense que cela a commencé après avoir utilisé l'écran GNU. Et en fait, quand je suis à l'intérieur d'une session d'écran GNU, vim et emacs fonctionnent bien (sauf certains mappages de touches étranges, par exemple les touches fléchées ne fonctionnent pas)

J'ai essayé de définir la variable d'environnement TERMCAP sur un fichier inexistant, car j'ai lu quelque part sur Internet, et cela a fait fonctionner vim (avec des paramètres différents de mes habituels) mais pas emacs ...

Savez-vous ce que je peux faire pour résoudre ce problème?

Al.
la source
Quelle variante unix utilisez-vous? Si Linux, quelle distribution? (Si vous ne savez pas, postez la sortie de uname -a.)
Gilles 'SO- arrête d'être méchant'
Voici la sortie: Linux [hôte] 2.6.18-274.3.1.el5 # 1 SMP ven 26 août 18:49:02 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux
Al.
2
Vous avez probablement des bibliothèques terminfo / termcap dupliquées. Procédez comme suit: exécutez "strace -o xxx emacs -nw" et quittez immédiatement emacs. Ouvrez ensuite le fichier xxx et recherchez le message d'erreur. Quelques lignes au-dessus, vous devriez voir quelles bibliothèques de termes * ont été ouvertes; il y a probablement vos entrées de terminal dupliquées.
angus
Merci, j'ai vu dans la trace qu'il essayait d'ouvrir certaines bibliothèques dans le dossier lib Enthought Python Distribution, qui n'avait rien à voir avec emacs, alors je me suis souvenu d'avoir ajouté ce dossier à mon LD_LIBRARY_PATH (c'est la seule façon que je connaisse pour exécuter du code compilé en utilisant des bibliothèques partagées spécifiques ...)
Al.

Réponses:

3

Résolu: Le problème était que j'avais spécifié dans mon ~/.bashrcan LD_LIBRARY_PATHqui contenait un dossier avec de nombreuses bibliothèques partagées, dont certaines étaient probablement des doublons d'autres. Je pense que dans mon cas, ce sont les ncursesbibliothèques.

Al.
la source
vous n'écrivez pas comment le contourner: vous venez de mettre les librairies EPD à la fin de LD_LIBRARY_PATH?
K.-Michael Aye