Mengapa saya mendapatkan kesalahan 'Tabrakan nama di antara ...' dan bagaimana cara memperbaikinya?

10

Setiap kali saya mencoba untuk meluncurkan vimatau emacsatau bahkan top(saya pikir itu sebenarnya perintah yang menggunakan ncurses) di terminal unix (pada komputer cluster di atas ssh), saya mendapatkan aliran berkelanjutan dari kesalahan 'Nama tabrakan antar xxx' seperti ini:

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

Menurut beberapa penelitian yang telah saya lakukan di web ini harus terkait dengan TERMCAP / TERMINFO, dan saya pikir ini mulai terjadi setelah saya menggunakan layar GNU. Dan pada kenyataannya, ketika saya berada di dalam sesi layar GNU, vim dan emacs berfungsi dengan baik (kecuali beberapa pemetaan kunci yang aneh, misalnya tombol panah tidak berfungsi)

Saya sudah mencoba untuk mengatur variabel lingkungan TERMCAP ke file yang tidak ada, seperti yang saya baca di internet, dan itu menyebabkan vim bekerja (dengan pengaturan berbeda dari yang biasa saya) tetapi tidak emacs ...

Apakah Anda tahu apa yang bisa saya lakukan untuk mengatasi masalah ini?

Al.
sumber
Apa varian unix yang Anda gunakan? Kalau Linux, distribusi apa? (Jika Anda tidak tahu, posting output dari uname -a.)
Gilles 'SO- stop being evil'
Berikut hasilnya: Linux [host] 2.6.18-274.3.1.el5 # 1 SMP Jumat 26 Agustus 18:49:02 EDT 2011 x86_64 x86_64 x86_64 GNU / Linux
Al.
2
Anda mungkin memiliki duplikat terminfo / termcap libraries. Lakukan ini: jalankan "strace -o xxx emacs -nw" dan segera keluar dari emacs. Kemudian buka file xxx dan cari pesan kesalahan. Beberapa baris di atas Anda akan melihat istilah * perpustakaan mana yang dibuka; mungkin ada entri terminal duplikat Anda.
angus
Terima kasih, saya melihat dalam jejaknya bahwa ia mencoba membuka beberapa perpustakaan di folder lib Enthought Python Distribution, yang tidak ada hubungannya dengan emacs, jadi saya ingat saya telah menambahkan folder itu ke LD_LIBRARY_PATH saya (itu satu-satunya cara yang saya tahu untuk jalankan beberapa kode yang dikompilasi menggunakan pustaka bersama tertentu ...)
Al.

Jawaban:

3

Diselesaikan: Masalahnya adalah saya telah menentukan di ~/.bashrcsebuah saya LD_LIBRARY_PATHyang berisi folder dengan banyak perpustakaan bersama, beberapa di antaranya mungkin merupakan duplikat dari yang lain. Saya pikir dalam kasus saya itu adalah ncursesperpustakaan.

Al.
sumber
Anda tidak menulis cara menghindarinya: apakah Anda baru saja meletakkan EPD libs di akhir LD_LIBRARY_PATH?
K.-Michael Aye