टर्मिनल (लिनक्स) में एक निष्पादन योग्य की ओर इशारा करते हुए एक सिमलिंक कैसे चलाएं


3

मैंने उबंटू मशीन पर NodeJs स्थापित किया है, और पैकेज के रूप में स्थापित किया गया है nodejs। अब, इसे चलाने के लिए node, मैंने एक सिमलिंक बनाया:

sudo ln -s /usr/bin/nodejs /usr/bin/node

अगर मैं सीधे सिम्लिंक को कॉल करता हूं तो यह काम करेगा, लेकिन यह मुझे nodeप्रोग्राम शुरू करने के लिए कॉल करने की अनुमति नहीं देता है ।

मैं इसे कैसे हल करूं?


कुछ और जांच: क्या नोडजेस इसे "नोडज" के रूप में चलाने पर काम करता है और इसे "नोड" के रूप में चलाने की कोशिश करते समय आपको क्या त्रुटि संदेश मिलता है? एक और बात: आप एनवीएम (नोड संस्करण प्रबंधक) पर एक नज़र डाल सकते हैं, यह अच्छा है यदि आपको नोड के एक विशेष संस्करण की आवश्यकता है जो पैकेज प्रबंधक द्वारा प्रदान नहीं की गई है।
FSMaxB

@FSMaxB रनिंग nodejs उम्मीद के मुताबिक काम करती है । लेकिन यह पर्याप्त नहीं है क्योंकि हर दूसरे कार्यक्रम nodeविश्व स्तर पर एक कमांड के रूप में उपलब्ध होने पर भरोसा करते हैं। रनिंग nodeकुछ भी नहीं करता है - कोई त्रुटि संदेश नहीं।
सिमोन बौद्रियास

हो सकता है कि एक उपनाम / in / etc / प्रोफाइल मदद कर सकता है, लेकिन यह काम नहीं करेगा यदि नोड को निष्पादित सिस्टमकॉल द्वारा चलाया जाता है। आप किस सॉफ्टवेयर का उपयोग कर रहे हैं जो नोड पर निर्भर है?
FSMaxB

@FSMaxB मैंने भी एलियासिंग की कोशिश की, जो कमांड लाइन में काम कर रहा था, लेकिन निष्पादन योग्य घोषणा के लिए काम नहीं कर रहा था #!/usr/bin/env node। मेरे पास बहुत सारे प्रोग्राम हैं जो नोड पर चल रहे हैं जैसे मोचा यूनिट टेस्ट, येओमान, ग्रंट, कि मैं उबंटू में दौड़ना चाहता हूं।
सिमोन बौद्रियास

मैं वास्तव में एक ताजा स्थापित करने की कोशिश करने के अलावा अन्य करने के लिए और अधिक नहीं जानता, लेकिन एक विचार है जो अभी मेरे पास आया है: सिम्लिंक का उपयोग नहीं कर रहा है, लेकिन "#!" के साथ बैश स्क्रिप्ट "/ usr / बिन / नोड" लिख रहा है। बिन / श "और" / usr / बिन / नोडज ....... "अंदर (और किसी तरह स्क्रिप्ट को नोडज को दिए गए मापदंडों को पास करते हुए, मैं बैश प्रोग्रामिंग में
उतना

जवाबों:


4

मान लें कि आप सामान्य रूप से सिम्बलिंग निष्पादन के बारे में पूछ रहे हैं, तो यह स्वचालित रूप से बॉक्स से बाहर काम करना चाहिए। सुनिश्चित करें कि / usr / बिन / नोडज हर किसी के द्वारा निष्पादन योग्य है, और टर्मिनल को पुनरारंभ करें। किसी भी मामले में, nodeटर्मिनल में कहीं से भी सीधे कॉल करना सामान्य रूप से काम करना चाहिए।

यदि nodeसही तरीके से निष्पादित होता है, लेकिन NodeJs खुद को nodeइसके बजाय बुलाया जाना पसंद नहीं करता है nodejs, तो यह एक अलग समस्या है।


अरे, मुझे बस एहसास हुआ कि सिम्कलिन कार्यों का पूरा पथ टाइप करना (जैसे:) /usr/bin/node। लेकिन अगर मैं केवल nodeयह लिखता हूं, तो क्या मुझे अपने पैट में या अपने टर्मिनल में कुछ सेट करना है?
साइमन बौड्रीस

@SimonBoudrias सुनिश्चित करें कि आपके PATH वैरिएबल में "/ usr / bin" है जिसे आप "env | grep PATH" द्वारा जांच सकते हैं। हालाँकि, यह बहुत ही अनुचित है कि "/ usr / bin" आपके PATH वैरिएबल में नहीं है, क्योंकि यदि आपका सिस्टम ठीक से काम नहीं करता तो ऐसा होता।
FSMaxB

@FSMaxB यह वहां है ... (यदि यह मदद करता है, तो मैं एक वर्चुअल मशीन के माध्यम से उबंटू को वर्चुअल बॉक्स में चला रहा हूं)
साइमन बौड्रीस

2

उबंटू में एक कार्यक्रम "नोड" है, जिसका Node.js. से कोई लेना-देना नहीं है। बस इसकी स्थापना रद्द करें:

sudo apt-get remove node

(आप जवाब मिलेगा, अगर आपने कोशिश की whereis node।)

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