"ডাব্লুডাব্লুতে চলতে পারে না" দিয়ে এনএমপি ইনস্টল ব্যর্থ হয়েছে


153

আমি আমার নোড পরিবেশটি নতুন উবুন্টু ১২.০৪ ইনস্ট্যান্টে স্থাপন করার চেষ্টা করছি, নোড ০.৮.১৪ ইতিমধ্যে ইনস্টল করা আছে, তবে আমি যখন চালানোর চেষ্টা করছিলাম তখন সমস্যার মধ্যে পড়েছিলাম npm install। সুতরাং আমি যখন চেষ্টা করি তখন npm installএটি বলে যে এটির মূল বা প্রশাসক হিসাবে চালানো দরকার:

Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script'
npm ERR!  { [Error: EACCES, mkdir '/usr/local/lib/node_modules/coffee-script']
npm ERR!   errno: 3,
npm ERR!   code: 'EACCES',
npm ERR!   path: '/usr/local/lib/node_modules/coffee-script',
npm ERR!   fstream_type: 'Directory',
npm ERR!   fstream_path: '/usr/local/lib/node_modules/coffee-script',
npm ERR!   fstream_class: 'DirWriter',
npm ERR!   fstream_stack: 
npm ERR!    [ 'DirWriter._create                 (/usr/local/lib/node_modules/npm/node_modules/fstream/lib/dir-writer.js:36:23)',
npm ERR!      '/usr/local/lib/node_modules/npm/node_modules/mkdirp/index.js:37:53',
npm ERR!      'Object.oncomplete (fs.js:297:15)' ] }
npm ERR! 
npm ERR! Please try running this command again as root/Administrator.

কিন্তু যখন এটি sudo হিসাবে চালানোর চেষ্টা করা হয়, এটি নিম্নলিখিত বলে:

npm WARN cannot run in wd PackNodeDev@0.0.1-166 npm install -g coffee-script node-gyp (wd=/home/ubuntu/PackNode)

আমার প্যাকেজ.জসনে এটিতে নিম্নলিখিত স্ক্রিপ্টগুলি রয়েছে:

"scripts": {
    "preinstall": "npm install -g coffee-script node-gyp",
    "start": "node server.js",
    "test": "mocha --require should --compilers coffee:coffee-script --colors"
 },

বাকী নির্ভরতা নির্ভরযোগ্যতা বৈধ যেহেতু আমি নিজের মেশিনে এটি পুরোপুরি ইনস্টল করে চলেছি (ম্যাক) কারও কি ক্লু রয়েছে যে কেন এটি হচ্ছে?

উত্তর:


231

ডকুমেন্টেশন বলছেন (এছাড়াও এখানে ):

যদি এনপিএমকে রুট সুবিধাগুলি সহ আহ্বান করা হয়, তবে এটি ইউআইডিটিকে ব্যবহারকারী অ্যাকাউন্টে বা userকনফিগার দ্বারা নির্দিষ্ট ইউআইডিতে পরিবর্তন করে , যা ডিফল্ট হয় nobodyunsafe-permমূল সুবিধাগুলি সহ স্ক্রিপ্টগুলি চালানোর জন্য পতাকা সেট করুন ।

আপনার বিকল্পগুলি হ'ল:

  1. পতাকা npm installদিয়ে চালান --unsafe-perm:

    [sudo] npm install --unsafe-perm
  2. যোগ unsafe-permপতাকা আপনার টু package.json:

    "config": {
        "unsafe-perm":true
    }
  3. ব্যবহার করবেন না preinstallবিশ্বব্যাপী মডিউল ইনস্টল করুন, তাদের আলাদাভাবে ইনস্টল এবং তারপর নিয়মিত চালানোর জন্য স্ক্রিপ্ট npm installroot ব্যবহারকারীর অধিকার উপস্থিত থাকলে:

    sudo npm install -g coffee-script node-gyp
    npm install

সম্পর্কিত :


2
দুঃখিত আমি এখন অবধি এটি দেখিনি। আমি "অনিরাপদ-পারম" এর আগে চেষ্টা করেছিলাম তবে এটি কার্যকর হয়নি। সমস্যা এখনও বিদ্যমান
EH

10
এটি আমার পক্ষে কাজ করে: sudo npm install --unsafe-permযাইহোক sudo npm install, যদিও আমি "unsafe-perm":trueপ্যাকেজ.জসনে যুক্ত করেছিলাম ... কেন তা নিশ্চিত নয়
দিমিত্রি পশকভিচ

8
এটি প্যাকেজে "কনফিগার" বৈশিষ্ট্যে যুক্ত করা হয়েছে। জসসন আসলে "npm_package_config_unsafe_perm" সেট করে তাই বিকল্প 2 কাজ করে না। দেখুন: stackoverflow.com/questions/28763958/...
justmoon

'অনিরাপদ-পরম': সত্য আমার পক্ষেও ব্যর্থ। লজ্জাজনক কারণ ত্রুটি বার্তাটিতে ত্রুটি এবং প্রসঙ্গটি দেয় না (এর uid পরিবর্তন সহ) অস্তিত্বের বাইরে থাকার কারণকে রহস্যজনক এবং আশ্চর্যজনক এবং প্রতিকূল কিছু দেওয়ার পরিবর্তে।
android.weasel

npm install --unsafe-permআমার পক্ষে কাজ করার সময় , আমি ডিফল্ট userকনফিগারেশন পরিবর্তন সম্পর্কে বোঝার চেষ্টা করার চেষ্টা করেছি । সুতরাং আমি করেছি npm set user my_userএবং npm set group my_group, যা রুট ব্যবহারকারীর .npmrcফাইলে সম্পর্কিত এন্ট্রি যুক্ত করে । তবে সমস্যাটি হ'ল node_modulesফোল্ডারটি নিজে এবং এর সাবফোল্ডারগুলি এখনও মূলের মালিকানাধীন, যাতে এটি কোনও সহায়তা করে না। এগুলি মূলের মালিকানাধীন না হওয়ার কোনও উপায় আমি বুঝতে পারি না।
ফুল্ভ

53

আমার জন্য কাজ করা একমাত্র জিনিসটি এমন একটি .npmrcফাইল যুক্ত করা ছিল :

unsafe-perm = true

একই কনফিগারেশনে যুক্ত করার package.jsonকোনও প্রভাব নেই।


36
ডক ইন: RUN npm set unsafe-perm true
আলেকজান্ডার মিলস

আপনি যদি ডাব্লুএসএল ব্যবহার করছেন তবে সেটটি অনিরাপদ-পারম সত্য বলে লিখুন। এটি আপনাকে সহায়তা করবে
স্টাস প্যানিউকভ

26

রুট ব্যবহারকারী ব্যবহার করে সেন্টোগুলি চালিত কোনও বেসরকারী সার্ভারে আমার নোডেজ অ্যাপ্লিকেশন প্রকাশের চেষ্টা করার সময় আমি একই সমস্যাটি অনুভব করেছি। একই ত্রুটিটি আমার প্যাকেজ.জসন ফাইলে "পোস্টইনস্টল": "./node_modules/bower/bin/bower ইনস্টল" দ্বারা চালিত হয়েছে সুতরাং আমার পক্ষে কাজ করা একমাত্র সমাধানটি ত্রুটি এড়াতে উভয় বিকল্প ব্যবহার করা:

1: বোভার ইনস্টল কমান্ডের জন্য --allow-root বিকল্পটি ব্যবহার করুন

"postinstall": "./node_modules/bower/bin/bower --allow-root install"

2: এনপিএম ইনস্টল কমান্ডের জন্য --unsafe-परम বিকল্পটি ব্যবহার করুন

npm install --unsafe-perm

12

এখানে ওপি, আমি এই প্রশ্নটি প্রথম জিজ্ঞাসা করার পরে নোড সম্পর্কে আরও অনেক কিছু শিখেছি। যদিও দিমিত্রি এর উত্তরটি খুব সহায়ক ছিল, শেষ পর্যন্ত আমার জন্য এটি কী করেছিল সঠিক অনুমতি সহ নোড ইনস্টল করা।

আমি কোনও প্যাকেজ ম্যানেজার ব্যবহার করে নোড ইনস্টল না করার পরামর্শ দিই, বরং এটি নিজেই সংকলন করার জন্য যাতে এটি একটি সাধারণ ডিরেক্টরিতে কোনও স্থানীয় ডিরেক্টরিতে থাকে।

এই নিবন্ধটি কীভাবে এটি করা যায় তার একটি খুব পরিষ্কার ধাপে ধাপে নির্দেশনা প্রদান করে:

https://www.digitalocean.com/community/tutorials/how-to-install-an-upstream-version-of-node-js-on-ubuntu-12-04


2

আমি এর মালিকানা /usr/localএবং এটির ~/Users/user-nameমতো পরিবর্তন করে এটি ঠিক করেছি:

sudo chown -R my_name /usr/local

এটি আমাকে ছাড়াই সব কিছু করতে দেয় sudo

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.