اذهب إلى المحتوى

السؤال

نشر

لقد اتبعت بعض الإرشادات لتحميل node.js على نظام التشغيل ubuntu على خادم الويب لدي. ولكن عندما أحاول التأكد من النسخة التي تم تحميلها من خلال الأمر التالي:

node --version

يظهر لي الخطأ التالي:

-bash: /usr/sbin/node: No such file or directory

مع العلم أنه يمكنني ملاحظة node ضمن المسار /usr/sbin/ وأيضاً عند طباعة نسخة npm تظهر لي بشكل سليم. وحتى إن قمت بكتابة الأمر التالي:

nodejs --version

أيضاً يظهر لي رقم النسخة. فما الفرق إذاً بين node و nodejs التي تم تحميلها؟ وكيف يمكنني تحميله لاستخدامه بالشكل الصحيح؟

Recommended Posts

  • 1
نشر

يجب عليك إنشاء ارتباط رمزي (ملف اختصار) "symlink" أو كما يسمى أيضاً "link soft" ضمن ال bin بشكل يدوي:

sudo ln -s `which nodejs` /usr/bin/node
#غير قياسية shells وإذاكنت تستخدم 
#node.js للمسار الذي تجد به Hardcoding قم ب 
sudo ln -s /usr/bin/nodejs /usr/bin/node
# Hardcoding: أي استخدام اسم صريح بدلاً من اسم رمزي لشيء من المحتمل أن يتغير في وقت لاحق

لحل المشكلة قم بتنقيذ الأوامر التالية:

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs
sudo apt-get install nodejs

أو:

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

عبر npm أو nvm ، يُطلق على Node.js اسم node ولكن إذا قمت بالتثبيت عبر apt-get ، فأنت بحاجة إلى استخدام اسم الحزمة nodejs لأنه من خلال apt-get ، يكون اسم الحزمة مأخوذاً بواسطة تطبيق مختلف تماماً ويسمى أيضاً node.

  • 1
نشر

سبب هذا الإختلاف أه تم تغيير ال node إلى nodejs  لذلك يمكنك عمل symlink لتفادي هذه المشكلة كالتالي

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

بحيث يتم إرجاع أي كان النسخة التي لديك إلى node

أو يمكنك استخدام update-alternatives كالتالي

sudo update-alternatives --install /usr/bin/node node /usr/bin/nodejs 10

 

  • 1
نشر

يمكن أن يكون لديك إصدار مختلف من node و nodejs لأنه تم تثبيتهما بطريقة مختلفة.

واحد مثبت من التوزيعة الرسمية في معظم الأحيان يتم توفير أمر nodejs بواسطة حزمة (Debian ، Ubuntu ، ...). يتم التثبيت ي تحت / usr / bin /.
عند تثبيت node باستخدام الأمر npm  أو snap وباستخدام الوسيطة -g ، يتم تثبيت الحزمة على مستوى النظام (متاح لجميع المستخدمين). هذه الحزمة مثبتة تحت / usr / local / bin /.

node و nodejs لهما وظائف متطابقة لكنهما إصداران مختلفان لأنهما حزمتان مختلفتان في برنامج Ubuntu. nodejs هو الإصدار الأقدم من الحزمة apt و node هي حزمة snap الأكثر حداثة. نسخة snap يتم تحديثها تلقائيًا ويمكن تهيئتها إما لتحديثها تلقائيًا إلى أحدث إصدار ثابت أو لا يتم تحديثها إلا ضمن نسخة معينة. 

أحد الاختلافات المهمة بين node و nodejs هو أن node تحتوي على npm مضمّن في حزمة snap ، بينما في nodejs يجب تثبيتها بشكل منفصل. 

  • 0
نشر

تقوم Ubuntu وبعض توزيعات Linux بتثبيت node كـ

/usr/bin/nodejs

، وليس ك

/usr/local/bin/node

يمكنك حل هذه المشكلة بتثبيت حزمة nodejs-legacy التي تنشئ ارتباط من 

/usr/bin/nodejs

إلى

/usr/bin/node

يمكنك تثبيتها من خلال الأمر التالي

sudo apt-get install nodejs-legacy

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...