Чому я отримую помилки "Зіткнення імені між ..." і як їх виправити?


11

Кожен раз, коли я намагаюся запустити vimабо emacsнавіть top(я думаю, що це фактично будь-яка команда, яка використовує ncurses) в unix-терміналі (на кластерному комп'ютері над ssh), я отримую безперервний потік помилок "Ім'я між 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.)
Жил "SO- перестань бути злим"

Ось вихід: Linux [хост] 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 та знайдіть повідомлення про помилку. Через пару рядків слід побачити, який термін * бібліотеки були відкриті; ймовірно, є ваші дубліровані записи терміналу.
angus

Дякую, я побачив у сліді, що він намагається відкрити деякі бібліотеки в папці lib Entought Python, що не має нічого спільного з emacs, тому я згадав, що додав цю папку до моєї LD_LIBRARY_PATH (це єдиний спосіб, який я знаю запустіть якийсь компільований код за допомогою певних спільних бібліотек ...)
Al.

Відповіді:


4

Вирішено: Проблема була в тому, що я вказав у своєму ~/.bashrcдокументі, LD_LIBRARY_PATHякий містив папку з багатьма спільними бібліотеками, деякі з яких, ймовірно, дублювали інші. Я думаю, що в моєму випадку це були ncursesбібліотеки.


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