Почему я получаю сообщения об ошибках между именами и как их исправить?


10

Каждый раз, когда я пытаюсь запустить vimили emacsдаже top(я думаю, что на самом деле это любая команда, использующая ncurses) в терминале Unix (на кластерном компьютере через ssh), я получаю непрерывный поток ошибок 'Name collision между xxx', например:

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 для несуществующего файла, как я читал где-то в Интернете, и это заставило vim работать (с настройками, отличными от моих обычных), но не emacs ...

Вы знаете, что я могу сделать, чтобы решить эту проблему?


Какой вариант Unix вы используете? Если Linux, то какой дистрибутив? (Если вы не знаете, опубликуйте вывод uname -a.)
Жиль "ТАК - перестань быть злым"

Вот вывод: Linux [host] 2.6.18-274.3.1.el5 # 1 SMP Пт 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 и найдите сообщение об ошибке. Несколько строк выше, вы должны увидеть, какие термины * библиотеки были открыты; вероятно, есть ваши дублированные записи терминала.
ангус

Спасибо, я увидел в трассировке, что он пытался открыть некоторые библиотеки в папке Lib Enthought Python Distribution, которые не имели ничего общего с emacs, поэтому я вспомнил, что добавил эту папку в мою LD_LIBRARY_PATH (это единственный способ, которым я знаю, что запустить какой-то скомпилированный код с использованием определенных общих библиотек ...)
Ал.

Ответы:


3

Решено: Проблема была я указано в моем ~/.bashrcапе , LD_LIBRARY_PATHкоторый содержал папку с множеством общих библиотек, некоторые из которых , вероятно , были дублирует другие. Я думаю, что в моем случае это были ncursesбиблиотеки.


Вы не пишете, как обойти это: вы только что поместили библиотеки EPD в конец LD_LIBRARY_PATH?
К.-Майкл Ай
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.