मुझे त्रुटियों के बीच नाम का टकराव क्यों हो रहा है और मैं उन्हें कैसे ठीक कर सकता हूं?


11

जब भी मैं लॉन्च करने की कोशिश करता हूं vimया emacsया top(मुझे लगता है कि यह वास्तव में कोई भी कमांड है जो ncurses का उपयोग करता है) एक यूनिक्स टर्मिनल में (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 पर्यावरण चर को गैर-मौजूदा फ़ाइल में सेट करने का प्रयास किया है, जैसा कि मैंने इंटरनेट पर कहीं पढ़ा है, और इसके कारण काम करने में कठिनाई हुई (अपने सामान्य से अलग सेटिंग्स के साथ), लेकिन emacs नहीं ...

क्या आप जानते हैं कि इस समस्या के समाधान के लिए मैं क्या कर सकता हूं?


आप किस यूनिक्स संस्करण का उपयोग कर रहे हैं? अगर लिनक्स, क्या वितरण? (यदि आप नहीं जानते हैं, तो के उत्पादन में पोस्ट uname -a।)
गाइल्स 'तथाकथित बंद किया जा रहा है बुराई'

यहाँ आउटपुट है: लिनक्स [होस्ट] 2.6.18-274.3.1.el5 # 1 एसएमपी शुक्र अगस्त 26 18:49:02 EDT 2011 x86_64 x86_64 x86_64 GNU / लिनक्स
अल।

2
आपने संभवतः टर्मोफ़ / टर्मकैप लाइब्रेरीज़ को डुप्लिकेट किया है। ऐसा करें: "strace -o xxx emacs -nw" चलाएं और तुरंत emacs से बाहर निकलें। फिर फ़ाइल xxx खोलें और त्रुटि संदेश खोजें। ऊपर की कुछ पंक्तियाँ आपको देखनी चाहिए कि कौन से शब्द * पुस्तकालय खोले गए थे; संभवतः आपकी डुप्लिकेट की गई टर्मिनल प्रविष्टियाँ हैं।
angus

धन्यवाद, मैंने ट्रेस में देखा कि यह एक्साइटेड पाइथन डिस्ट्रिब्यूशन लिबर फोल्डर में कुछ लाइब्रेरियों को खोलने की कोशिश कर रहा था, जिनका emacs से कोई लेना-देना नहीं था, इसलिए मुझे याद आया कि मैंने उस फ़ोल्डर को अपने LD_LIBRARY_PATH में जोड़ा था (यह एकमात्र तरीका है जिसे मैं जानता हूं विशिष्ट साझा पुस्तकालयों का उपयोग करके कुछ संकलित कोड चलाएं ...)
अल।

जवाबों:


4

हल: समस्या मैं अपने में निर्दिष्ट किया था ~/.bashrcएक LD_LIBRARY_PATHहै कि कई साझा पुस्तकालयों, जिनमें से कुछ शायद थे दूसरों के डुप्लिकेट के साथ एक फ़ोल्डर निहित। मुझे लगता है कि मेरे मामले में यह ncursesपुस्तकालय था ।


आप यह नहीं लिखेंगे कि इसे कैसे दरकिनार किया जाए: क्या आपने LDDIBRARY_PATH के अंत में सिर्फ EPD लिबास डाला है?
के-माइकल ऐ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.