为什么会出现“ ...之间的名称冲突”错误,我该如何解决?


11

每次我尝试启动vim或者emacs甚至是top(我认为这实际上是任何命令使用的ncurses)在UNIX终端(群集计算机通过ssh上),我得到这样的错误“XXX之间的名称冲突”的AA连续流:

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

根据我在网络上所做的一些研究,这应该与TERMCAP / TERMINFO有关,我认为这是在我使用GNU屏幕之后开始发生的。实际上,当我进入GNU屏幕会话时,vim和emacs可以正常工作(某些奇怪的键映射除外,例如箭头键不起作用)

我尝试将TERMCAP环境变量设置为不存在的文件,因为我已经在Internet上的某个地方阅读了文件,这导致vim可以工作(设置与我平常的设置不同),但无法使emacs正常运行...

您知道我能解决这个问题吗?


您正在使用哪种unix版本?如果是Linux,该如何分配?(如果您不知道,请发布的输出uname -a。)
Gilles'SO-别再作恶了

输出为:Linux [host] 2.6.18-274.3.1.el5#1 SMP Fri Aug 26 18:49:02 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux
Al。

2
您可能已经复制了terminfo / termcap库。这样做:运行“ strace -o xxx emacs -nw”并立即退出emacs。然后打开文件xxx并搜索错误消息。在上面的几行中,您应该看到打开了哪些term *库。可能有重复的终端条目。
安格斯

谢谢,我在跟踪中看到它正在尝试打开Enthought Python Distribution lib文件夹中的某些库,该库与emacs无关,所以我记得我已经将该文件夹添加到了LD_LIBRARY_PATH中(这是我知道的唯一方法使用特定的共享库运行一些已编译的代码...)
Al。

Answers:


4

解决:这个问题是我在我指定~/.bashrcLD_LIBRARY_PATH包含文件夹有许多共享库,其中一些很可能是别人的复制品。我认为这是ncurses图书馆。


您没有写出规避它的方法:您只是将EPD库放在LD_LIBRARY_PATH的末尾吗?
K.-Michael Aye 2012年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.