এনপিএম নির্ভরতা ইনস্টল করতে পারে না - লক করা হয়নি এমন কিছু আনলক করার চেষ্টা


192

আমি আমার প্যাকেজ.জসন ফাইলে এনপিএম ইনস্টল চালানোর চেষ্টা করছি, তবে আমার অনেক সমস্যা হচ্ছে। এটি আমার সমস্ত নির্ভরতার উপর "ত্রুটি: XXX টি আনলক করার চেষ্টা করুন, যা লক করা হয়নি" বলে চলেছে। তাদের মধ্যে একটি এখানে:

Error: Attempt to unlock tbd@~0.6.4, which hasn't been locked
        at unlock (/usr/local/lib/node_modules/npm/lib/cache.js:1304:11)
        at cb (/usr/local/lib/node_modules/npm/lib/cache.js:646:5)
        at /usr/local/lib/node_modules/npm/lib/cache.js:655:20
        at /usr/local/lib/node_modules/npm/lib/cache.js:1290:7
        at /usr/local/lib/node_modules/npm/node_modules/lockfile/lockfile.js:167:38
        at OpenReq.Req.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:144:5)
        at OpenReq.done (/usr/local/lib/node_modules/npm/node_modules/graceful-fs/graceful-fs.js:64:22)
        at Object.oncomplete (fs.js:107:15)

যদি আমি এটিকে sudo হিসাবে চালানোর চেষ্টা করি তবে মনে হয় এটি আরও পেতে এবং কিছু প্যাকেজ ইনস্টল করা শুরু করে, তবে পরিবর্তে কিছু নতুন ত্রুটি পপআপ:

> chokidar@0.8.1 postinstall /Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/chokidar
> node setup-deps.js

shell-init: error retrieving current directory: getcwd: cannot access parent directories: Permission denied

node.js:811
    var cwd = process.cwd();
                      ^
Error: EACCES, permission denied
    at Function.startup.resolveArgv0 (node.js:811:23)
    at startup (node.js:58:13)
    at node.js:902:3
npm ERR! error rolling back Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q'
npm ERR! error rolling back  karma@0.10.9 { [Error: ENOTEMPTY, rmdir '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q']
npm ERR! error rolling back   errno: 53,
npm ERR! error rolling back   code: 'ENOTEMPTY',
npm ERR! error rolling back   path: '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/q' }
npm ERR! Error: ENOENT, chown '/Users/tkirchner/Documents/Projects/mm-datatable/node_modules/karma/node_modules/socket.io/lib/socket.io.js'

আমি সম্প্রতি আমার নোড এবং এনপিএম ইনস্টলেশন আপডেট করেছি। সুতরাং এর সাথে এর কিছু করার আছে। এছাড়াও, আমার বেশিরভাগ বিকাশ অফিসে হয়েছে এবং আজ আমি ভিপিএন-এর উপর কাজ করছি, তাই এর সাথেও এর কিছু করার আছে।

কোন ধারনা?


প্যাকেজ.জসন ফাইলটি এখানে রয়েছে, যদি সে সাহায্য করে ... (দীর্ঘশ্বাস), এনভিএম, আমি এটি খুব বেশি অক্ষরে আটকে দিতে পারি না।
টিজে কার্চনার

আপনি কী চালাচ্ছেন
ওয়েইন

উত্তর:


421

ফটোসেনিগমা অনুসারে: https://github.com/npm/npm/issues/4815

টার্মিনাল উইন্ডোতে এই কমান্ডগুলি চালান (দ্রষ্টব্য - the USER অংশটি প্রতিস্থাপন করবেন না ... আপনার ব্যবহারকারীকে পেতে একটি লিনাক্স কমান্ড চাপায়!):

sudo chown -R $USER ~/.npm
sudo chown -R $USER /usr/local/lib/node_modules

... এবং ... আপনি যদি কোনও ম্যাকের উপরে থাকেন (যেমন আমি আছি), এবং এখনও এই আদেশগুলি চালানোর পরে ত্রুটিগুলি দেখতে পান, তবে এই শেষটি চালান এবং আপনার ভাল হওয়া উচিত। (এটি করার আগে আপনি পরীক্ষা করার চেষ্টা করার পরামর্শ দিন। আমি সত্যই প্রয়োজনীয় না মনে হয় ENRERE / usr / স্থানীয় ডিরেক্টরিতে অনুমতিগুলি পরিবর্তন করতে পছন্দ করি না!)

sudo chown -R $USER /usr/local

7
আমার জন্য কাজ ধন্যবাদ ধন্যবাদ! আমার নোড_মডিউলস ফোল্ডারটি যদিও অন্য জায়গায় ছিল, সম্ভবত এটি অন্য কাউকে সাহায্য করবেsudo chown -R `whoami` /usr/lib/node_modules/
জাস্টেন

4
আশ্চর্যের বিষয় হল, পুনরাবৃত্তিকারী আমার জন্য chownঅনুমতিগুলি পরিবর্তন করেনি ~/.npm/_locks। আমি দৌড়ে আমার কাজ পেয়েছিলামsudo chown -R myname ~/.npm/_locks
সীতাতী

7
সচেতন হন যে এই সমাধানটি একাধিক ব্যবহারকারীর প্ল্যাটফর্মগুলির জন্য ভাল নয়। প্রথম কমান্ডটি ঠিক আছে, দ্বিতীয়টি সিস্টেম ফাইলগুলির একটি মানক ব্যবহারকারীর মালিক। / usr / স্থানীয় / lib / নোড_মডিউলগুলি কেবল এনপিএম দ্বারা --global বিকল্পের সাথে ব্যবহৃত হয়, এর অর্থ sudoও ব্যবহার করা হয়। দুর্ভাগ্যক্রমে, কিছু এনপিএম ব্যবহার করে স্ক্রিপ্টগুলি বৈশ্বিক এবং অবিশ্বাস্য উভয় এনপিএম কমান্ড মিশ্রিত করে ... এই গোলযোগ তৈরি করা হচ্ছে mess
ফাফমান

5
সম্মত, আপনার যা দরকার তা হ'ল প্রথম আদেশ। অন্যদের এড়িয়ে চলুন কারণ এগুলি আপনার ব্যবহারকারীর মালিকানাযুক্ত হওয়া উচিত নয়।
পাইরোস্প্যাড

2
দ্বিতীয় লাইনের "প্রভাব" বিপরীত করার কোনও উপায় আছে sudo chown -R $USER /usr/local/lib/node_modulesকি? আমি এটি পড়ার আগেই এটি
চালিয়েছি

153

আমি আজ বিকেলে সহকর্মীর সাথে কাজ করেছি এবং সমস্যাটি কী তা বুঝতে পেরেছি। আমার হোম ডিরেক্টরিতে আমার ".npm" ফোল্ডারটি আমার পরিবর্তে রুট ব্যবহারকারীদের মালিকানাধীন। আমি নিশ্চিত না যে এর কারণ কী হয়েছিল। সম্ভবত আমি এক পর্যায়ে রুট প্রশাসক হিসাবে নোড বা এনপিএম ইনস্টল করেছি। যে কোনও ক্ষেত্রে আমি কেবল দৌড়েছি sudo chown -R [username] .npmএবং শেষ পর্যন্ত আমি npm installআমার প্রকল্পগুলি থেকে আবার কমান্ড চালাতে সক্ষম হয়েছি!


11
আপনি একই কমান্ডটি একই সাথে কার্যকর করতে ~/tmp/, বা নোড কোনও অস্থায়ী অবস্থান হিসাবে যে কোনও অবস্থান ব্যবহার করেন তাও সহায়তা করে
জেসন

1
আপনার উত্তর করার জন্য আপনাকে ধন্যবাদ! ত্রুটির বার্তাটি খারাপ হওয়ায় আমাকে কিছুটা মাথা ব্যথা বাঁচিয়েছে। তবে আমি বলব, সেই এনপিএম অবশ্যই ডিফল্টরূপে এটি করবে কারণ আমি নিশ্চিত যে আমি এটি নিজেই মূলের নীচে ইনস্টল করি নি। এবং, সম্পূর্ণতার জন্য, আপনাকে -আর <ইউজারনেম> .এনএম
কাওম্যাগনম্বম্ব

খুশি আমি সাহায্য করতে পারে :) এবং, ভাল ধরা! আমি এটা বলতে আমার প্রতিক্রিয়া পরিবর্তন করব।
টিজে কির্চনার

জীবন রক্ষাকারী! আপনাকে ধন্যবাদ
ম্যাথু কুলাম

21

আমার ক্ষেত্রে ইস্যুটি এনপিএমের সাথে এমন কোনও ব্যবহারকারীর সাথে অনুরোধ করেছিল যা একটি হোম ডিরেক্টরি নেই, সুতরাং উদাহরণস্বরূপ নিম্নলিখিত কমান্ডটি ব্যর্থ হবে:

sudo -u someUser npm install

সমাধানটি হল একটি হোম ডিরেক্টরি সরবরাহ করা, যেখানে someUserলেখার অ্যাক্সেস রয়েছে:

sudo -u someUser HOME=/some/directory npm install

উত্সাহিত কারণ এটি আমার পক্ষে আসলে কাজ করে, তাই কুডোস এবং ধন্যবাদ। আমি প্রোডাকশনে নিযুক্ত করছি এবং ব্যবহারকারীর কাছে .npm ডিরেক্টরিও ছিল না (যা আমি যেভাবেই খুঁজে পেতে পারি)
স্টুয়ার্ট ওয়াট

"ক্রনোস" ব্যবহারকারীর সাথে ক্রোমোজ এ কাজ করে।
কাইল কোবারলি

আমি নির্দিষ্ট করে এটি ঘিরে কাজ করতে সক্ষম হয়েছি sudo -u someUser -i, যা একটি নতুন লগইন শেল শুরু করে। আমি এটি আরও কিছুতে দেখেছি এবং এনপিএম-এ ক্যাচিং কোডটি এনএমপিএস ক্যাশে ভেরিয়েবল ব্যবহার করে, যা আমি ডিফল্ট অনুমান করছি $HOME/.npm/। হোম ভেরিয়েবল কনফিগারেশন এবং কমান্ড লাইন বিকল্পের উপস্থিতি বা অনুপস্থিতির উপর নির্ভর করে যা হোমে ভেরিয়েবল সেট হয়ে যায় তার সাথেও sudo এর আলাদা আচরণ থাকতে পারে।
jgibson

11

একই সমস্যা ছিল এবং গ্রহণযোগ্য উত্তর অনুসারে ইস্যুগুলি পরিবর্তন করে এটি ঠিক করেছে:

sudo chown -R $USER ~/.npm

তবে দ্বিতীয় কমান্ডটি এড়ানো উচিত কারণ এটি কোনও সিস্টেম সংস্থান ( sudo chown -R $USER /usr/local/lib/node_modules) এর অনুমতিগুলি হ্রাস করে । ভালো বুদ্ধি নই.

রেকর্ডের জন্য: "ইউএসআর" এর /usr/localঅর্থ ইউনিক্স সিস্টেম সংস্থানসমূহ


1
এটি সম্ভবত নতুন উত্তর হিসাবে পোস্ট করার চেয়ে গ্রহণযোগ্য উত্তরের একটি মন্তব্য হওয়া উচিত।
Kmeixner

এই উত্তরটির লেখক এটি জানেন তবে তার উত্তরটি আপডেট করেননি, তাই আমি বলি একটি পৃথক উত্তর অনেকটা ওয়্যারেন্টেড।
গুই প্রে

4

এর কোনওটিই আমার পক্ষে কাজ করেনি। নিম্নলিখিতগুলি করে আমাকে শাব্দিকভাবে রুট হিসাবে চালাতে হয়েছিল:

sudo su -
sudo npm install forever -g

তারপরে লিনাক্স উবুন্টু 14.04 এ প্যাকেজ ইনস্টল করা হয়েছে।


আপনার সত্যিকার অর্থে এনপিএম চালানো উচিত নয়!
এন্টোইন 'হাশর' মুসো

2

নিম্নলিখিত কমান্ডের অনুমতি সংক্রান্ত সমস্যাগুলি ঠিক করা উচিত:

sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}

আপনি সরকারীভাবে প্রস্তাবিত আরও একটি সমাধান সম্পর্কে এখানে পড়তে পারেন:

https://docs.npmjs.com/getting-started/fixing-npm-permissions


1

আমার সমাধান:

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

আমার ক্ষেত্রে ছিল:

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

তবে আমি একই সমস্যা পেয়ে যাচ্ছিলাম, শেষ অবধি

npm cache clean

এটা কাজ করেছে !


0

আমারও একই সমস্যা ছিল এবং কয়েক ঘন্টা ধরে এনপিএম সম্পর্কিত ফাইল এবং ডিরেক্টরিগুলির অনুমতি / মালিকানা ঠিক করার চেষ্টা করা হয়েছিল তবে এর সাথে ভাগ্য হয়নি।

হঠাৎ আমি দেখতে পেলাম যে আমার কাছে অস্তিত্বের ডিরেক্টরিতে ইন্ট্রি করে ~/.npmrcফাইল রয়েছে cachecacheডিফল্ট ক্যাশে অবস্থান ব্যবহার করতে সেই সম্পত্তিটিকে সরানো হয়েছে এবং এখন এটি সমাধান হয়েছে solved


0

দাবি পরিত্যাগী

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

সমস্যা

নীচে শেখা পাঠ্যগুলির একটি তালিকা এবং একটি সম্ভাব্য মৌলিক সমাধান যা সর্বদা আমাদের উদ্ধার করেছে:

  1. নোড_মডিউলগুলি , এনপিএম স্থানীয় ইনস্টলেশন ডিরেক্টরি ওএসের একটি ঘাটতি দ্বারা 255 অক্ষরের চেয়ে দীর্ঘ পাথ প্রক্রিয়া করতে অক্ষমতার দ্বারা সংশোধন থেকে সুরক্ষিত হয় ।
  2. যদি কোনও কমান্ড লাইন সরঞ্জামের মাধ্যমে ফোল্ডারটি মোছা হয় তবে এটি এখনও প্রদর্শিত হতে পারে যেন ফোল্ডারটি এক্সপ্লোরারটিতে উপস্থিত থাকে যে এটি অ্যাক্সেস করার চেষ্টা করার সময় বেশ কয়েকটি অনুমতি ত্রুটি দেয়।
  3. আপনার অ্যান্টিভাইরাস এবং / অথবা স্থানীয় নীতি পরিচালকের উপর নির্ভর করে আপনি নোড_মডিউলগুলি ফোল্ডার তৈরি করতে সক্ষম হতে পারেন এবং পরে এতে অ্যালগ্রেড অ্যাক্সেস বা অনুমতিগুলি বেশ কয়েকটি ইনস্টলেশন ত্রুটির ফলে তৈরি করতে পারেন।
  4. এর সাথে সম্ভাব্য সমস্যার আরও অন্তর্দৃষ্টি পেতে এনপিএম লগগুলি সক্ষম করুন:

    npm install --loglevel verbose

ভিত্তিগত

বিশ্বব্যাপী রিম্রাফ ইনস্টল করুন

 npm install rimraf -g

উপর rimraf চালান node_modules :

rimraf yourDir/node_modules

তারপরে চালানোর চেষ্টা করুন:

npm install

সতর্কবাণী!

বা উহার অভাব. আদেশটি অনুসরণ করে সে সম্পর্কে অত্যন্ত সতর্কতা অবলম্বন করুন rimraf। কোনও সতর্কতা নেই, কোনও প্রম্পট নেই, কিছুই নেই। এটি সহজভাবে পৃথিবীর ধাপ থেকে ডিরেক্টরিটি মুছে ফেলে, মনে হয় এটি কখনও ছিল না। আপনার নিজের ঝুঁকিতে এটি ব্যবহার করে দেখুন।

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