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

ظهور الخطأ Error: EACCES: permission denied في node.js

Tamim Fahed

السؤال

عندما أحاول تشغيل خادم الويب node.js يظهر لدي الخطأ التالي:

npm ERR! path /usr/local/lib/node_modules
npm ERR! code EACCES
npm ERR! errno -13
npm ERR! syscall access
npm ERR! Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!  { Error: EACCES: permission denied, access '/usr/local/lib/node_modules'
npm ERR!   errno: -13,
npm ERR!   code: 'EACCES',
npm ERR!   syscall: 'access',
npm ERR!   path: '/usr/local/lib/node_modules' }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

حاولت تغيير المستخدم ولكن نفس الخطأ. كيف يمكنني حل هذه المشكلة؟

رابط هذا التعليق
شارك على الشبكات الإجتماعية

Recommended Posts

  • 1

يجب عليك تغيير صلاحيات الوصول إلى المجلّد، أولاً يجب التأكد من المستخدم المالك owner المجلد:

ls -la /usr/local/lib/node_modules

وغالباً في حال يتم رفض الوصول إلى المجلّد هذا يعني أن المالك هو root، وللتأكد من المستخدم الحالي يمكنك تنفيذ:

whoami 

//أو

id -un

ثم يمكنك تغيير المالك owner من خلال تنفيذ الأمر:

sudo chown -R [owner]:[owner] /usr/local/lib/node_modules

أو

sudo chown -R ownerName: /usr/local/lib/node_modules

كما ينصح البعض أيضاً بإجراء هذه التعديلات على كل من المجلدات التالية في حال استمرار المشكلة:

sudo chown -R $USER /usr/local/lib/node_modules/
sudo chown -R $USER /usr/local/bin/
sudo chown -R $USER /usr/local/share/

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

هذه مشكلة صلاحية وتغيير المستخدم لن يحل لك هذه المشكلة إلا إذا كان المستخدم مسؤول فإذن لديه صلاحية

لحل هذه المشكلة يجب عليك تشغيل البرنامج من المستخدم root أو مستخدم مسؤول Administrator أو من أي مستخدم عادي بإستخدام الأمر التالي

sudo .....

لكي يتم تنفيذ البرنامج كمسؤول أو بمعنى آخر بصلاحية مسؤول

وللتقليل من إحتمالية ظهور أخطاء في الصلاحية ، يمكنك تعديل npm لكي يستخدم مسار آخر

في هذا المثال سننشئ مسار مخفي في مسار home

في موجه الأوامر في مسار home انشئ هذا المجلد

mkdir ~/.npm-global

قم بتعديل npm لكي يستخدم المسار الجديد كالآتي

npm config set prefix '~/.npm-global'

في محرر النص الذي تفضله افتح وانشئ ملف

~/.profile

وقم بإضافة هذا السطر

export PATH=~/.npm-global/bin:$PATH

في موجه الأوامر قم بتحديث متغيرات النظام

source ~/.profile

لتجريب التعديلات الجديدة قم بتثبيت حزم npm ثبيتها ك global بدون إستخدام sudo

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 0

الاحتمال الأول هو تغيير مالك المجلد "/ usr / local / lib / node_modules" لتعيين حساب المستخدم الخاص به. أول شيء هو معرفة اسم المستخدم الخاص بك أولاً. في Linux ، يمكنك رؤية ذلك ببساطة عن طريق تشغيل Terminal. إنه موجود قبل علامة "@" .

يمكنك بعد ذلك تغيير اسم مستخدم المجلد باستخدام الأمر "chown". يسمح لك الخيار "-R" بتغيير المستخدم فقط ، دون تحديد المجموعة.

sudo chown -R utilisateur /usr/local/lib/node_modules

في Linux ، يوجد متغير البيئة "$ USER" ، والذي يتوافق مع المستخدم الحالي. بهذه الطريقة ، يمكنك نسخ الأمر مباشرة إلى جهازك

sudo chown -R $USER /usr/local/lib/node_modules

.

الحل الثاني ، الذي سيؤثر على النظام أقل من تغيير مالك المجلد ، هو إنشاء مجلد جديد في الدليل الرئيسي الخاص بك ، والذي سيحتوي على المكتبات المثبتة مع NPM. قم أولاً بإنشاء الدليل:

mkdir ~/.my-modules-npm

لكي يستخدم NPM هذا الدليل ، نستخدم الأمر "npm config" ، والذي يسمح لك باسترداد وتغيير تكوين NPM. يجب تعديل متغير "البادئة" للإشارة إلى الدليل الجديد:

npm config set prefix '~/.my-modules-npm'

لكي يعمل هذا التكوين ، سيكون من الضروري حفظ الدليل في متغير "PATH" في النظام. للقيام بذلك ، افتح الملف "~ / .profile" باستخدام محرر نصي وأضف السطر التالي:

export PATH=~/.npm-global/bin:$PATH

ثم استخدم الأمر "source" لقراءة الملف وتفسير الأمر :

source ~/.profile

عليك فقط تثبيت حزمة دون استخدام الأمر "sudo" للتحقق من أنها تعمل:

npm install ....

 

رابط هذا التعليق
شارك على الشبكات الإجتماعية

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...