Tại sao tôi lại gặp phải lỗi 'Tên va chạm giữa các lỗi' và làm cách nào để khắc phục chúng?


10

Mỗi lần tôi cố gắng khởi chạy vimhoặc emacsthậm chí top(tôi nghĩ rằng thực sự đó là bất kỳ lệnh nào sử dụng ncurses) trong một thiết bị đầu cuối unix (trên một máy tính cụm trên ssh), tôi nhận được một luồng liên tục về 'Xung đột tên giữa các lỗi xxx' như thế này:

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

Theo một số nghiên cứu tôi đã thực hiện trên web, điều này sẽ liên quan đến TERMCAP / TERMINFO và tôi nghĩ điều này đã bắt đầu xảy ra sau khi tôi sử dụng màn hình GNU. Và trên thực tế, khi tôi ở trong một phiên màn hình GNU, vim và emacs hoạt động tốt (ngoại trừ một số ánh xạ khóa lạ, ví dụ như các phím mũi tên không hoạt động)

Tôi đã cố gắng đặt biến môi trường TERMCAP thành một tệp không tồn tại, vì tôi đã đọc ở đâu đó trên internet và nó khiến vim hoạt động (với các cài đặt khác với các cài đặt thông thường của tôi) nhưng không phải là ...

Bạn có biết tôi có thể làm gì để giải quyết vấn đề này không?


Bạn đang sử dụng biến thể unix nào? Nếu Linux, phân phối gì? (Nếu bạn không biết, hãy đăng kết quả đầu ra uname -a.)
Gilles 'SO- ngừng trở nên xấu xa'

Đây là đầu ra: Linux [host] 2.6.18-274.3.1.el5 # 1 SMP Thứ Sáu ngày 26 tháng 8 lúc 18 giờ 49 phút EDT 2011 x86_64 x86_64 x86_64 GNU / Linux
Al.

2
Bạn có thể có các thư viện terminfo / termcap trùng lặp. Làm điều này: chạy "strace -o xxx emacs -nw" và ngay lập tức thoát emacs. Sau đó mở tệp xxx và tìm kiếm thông báo lỗi. Một vài dòng trên bạn sẽ thấy thư viện * thuật ngữ nào đã được mở; có thể có các mục thiết bị đầu cuối trùng lặp của bạn.
angus

Cảm ơn, tôi đã thấy trong dấu vết rằng nó đang cố mở một số thư viện trong thư mục lib Phân phối Python, không liên quan gì đến emacs, vì vậy tôi nhớ rằng tôi đã thêm thư mục đó vào LD_LIBRARY_PATH (đó là cách duy nhất tôi biết chạy một số mã được biên dịch bằng các thư viện chia sẻ cụ thể ...)
Al.

Câu trả lời:


3

Giải quyết: Vấn đề là tôi đã quy định tại tôi ~/.bashrcmột LD_LIBRARY_PATHcó chứa một thư mục với nhiều thư viện chia sẻ, một số trong đó có lẽ bản sao của người khác. Tôi nghĩ rằng trong trường hợp của tôi đó là các ncursesthư viện.


bạn không viết làm thế nào để phá vỡ nó: bạn đã đặt các lib EPD ở cuối LD_LIBRARY_PATH chưa?
K.-Michael Aye
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.