/ Usr / bin और / usr / स्थानीय / बिन के बीच संघर्ष


6

मेरे पास / usr / bin में एक एप्लीकेशन ( एक्सक्यूबेंट सीटीज) स्थापित है।

मैंने Emacs को स्रोत से भी संकलित किया है , जो ctags के अपने संस्करण को / usr / लोकल / बिन में स्थापित करता है।

कमांड प्रॉम्प्ट से ctags चलाने से / usr / लोकल / बिन से Emacs संस्करण चलता है ।

वहाँ यह / usr / बिन से आवेदन का उपयोग करने के लिए मजबूर करने का एक तरीका है ?

मैं / usr / लोकल / बिन में जा सकता हूं और अवांछित ctags संस्करण को हटा या नाम बदल सकता हूं, लेकिन मैं सोच रहा हूं कि क्या कोई दूसरा तरीका है।

जवाबों:


10

अपना पथ संपादित करें, इसलिए / usr / bin / usr / स्थानीय / बिन से पहले दिखाई देता है। आप अपने वर्तमान मार्ग का पता लगाते हैं echo $PATH। इसे बदलने के लिए आमतौर पर आपके सिस्टम पर निर्भर करता है ~/.bashrc। कर रहे हैं सवाल यहाँ और पर ServerFault निपटने जहां वातावरण चर को खोजने के लिए और जो उपयोग करने के लिए, के साथ ~/.bashrcया ~/.bash_profile:-)

यदि आपके पास सॉफ्टवेयर है जो /usr/local/bin/उस "ओवरराइड्स" को स्थापित करता है जो सिस्टम में डाला गया है /usr/bin, तो आप यह निर्दिष्ट करने के लिए एक उपनाम बना सकते हैं कि प्रति-प्रोग्राम के आधार पर कौन सा निष्पादन योग्य है। उदाहरण के लिए इस ctags प्रोग्राम के साथ, इसे अपने में रखें ~/.bashrc

alias ctags="/usr/bin/ctags"

(हालांकि एसएफ लिंक में से एक विशेष रूप से साइबरविन के बारे में था, यह अन्य प्लेटफार्मों पर भी लागू है)


संक्षिप्त। फिर भी मूल रूप से हर कोण का संदर्भ है जिसे लेखक देखना चाहता है। अच्छी पोस्ट।
koenigdmj

3
मुझे लगता है कि मैं इसके लिए एक उपनाम सेट करने के विकल्प को पसंद करता हूं। पूरे बिंदु / usr / स्थानीय / bin की है कि यह सिस्टम डिफ़ॉल्ट ओवरराइड करता है है।
गोड इटर

इस समाधान का उपयोग करना मुसीबत के लिए पूछ रहा है ' क्यूज़ को एफएचएस द्वारा /usr/localओवरराइड करने के लिए डिज़ाइन किया गया है /usrआप किसी भी कार्यक्रम में /usr/localएक /usrसमकक्ष का उपयोग खो देंगे । aliasइंटरेक्टिव शेल कमांड के लिए केवल एक प्रभाव होता है और यह स्वयं के साइड-इफेक्ट्स का परिचय देता है क्योंकि यह PATHखोज को ओवरराइड करता है ।
ivan_pozdeev 6

0

यदि आपको किसी ctagsइंस्टॉलेशन की आवश्यकता नहीं है /usr/local, तो इसे हटा दें। (यह सबसे अच्छा तरीका संभव है 'cuz यह आपको उस समस्या के आसपास काम करने से बचाएगा, जो आप अभी कर रहे हैं, फिर कभी।)

या Emacs को इसे पहली जगह पर स्थापित करने से रोकें और / या इसे स्थापित करने से पहले किसी मौजूदा के लिए जाँच करें (यह कैसे करें कि यह इस बात पर निर्भर करता है कि आप इसे कैसे स्थापित कर रहे हैं)।

अंत में, आप EmacsWiki केctags अनुसार रास्ता बता सकते हैं : टैग बनाकर , टैग लगाकर

 (setq path-to-ctags "<path_to_ctags_executable>")

आपकी इनिट फ़ाइल में।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.