node.js - NPM মডিউল সুডোর ছাড়া বিশ্বব্যাপী ইনস্টল হবে না
ubuntu yeoman (9)
আমি উবুন্টু 12.04 এলটিএস পুনরায় ইন্সটল করেছি, এবং অন্য কিছু করার আগে আমি এই পদক্ষেপগুলি করেছি :
নিম্নলিখিত স্ক্রিপ্টের সাথে প্যাকেজ ম্যানেজারের মাধ্যমে নোড ইনস্টল করা হয়েছে
sudo apt-get update sudo apt-get install python-software-properties python g++ make sudo add-apt-repository ppa:chris-lea/node.js sudo apt-get update sudo apt-get install nodejs
বিশ্বব্যাপী ইয়েমেন, এক্সপ্রেস, এন, ইয়েমেন জেনারেটর ইনস্টল করার চেষ্টা করা হয়েছে এবং তারা সবাই একই ভুল ফিরিয়ে দিয়েছে
এনপিএম ইআরআর! ত্রুটি: EACCES, symlink '../lib/node_modules/n/bin/n'
এনপিএম ইআরআর! {[ত্রুটি: EACCES, symlink '../lib/node_modules/n/bin/n'] errno: 3, কোড: 'EACCES', পাথ: '../lib/node_modules/n/bin/n'}
এনপিএম ইআরআর!
এনপিএম ইআরআর! রুট / অ্যাডমিনিস্ট্রেটর হিসেবে আবার এই কমান্ডটি চালানোর চেষ্টা করুন।
এনপিএম ইআরআর! সিস্টেম লিনাক্স 3.8.0-29-জেনেরিক
এনপিএম ইআরআর! কমান্ড "/ usr / bin / node" "/ usr / bin / npm" "ইনস্টল করুন" "-g" "-d" "n"
এনপিএম ইআরআর! cwd / হোম / হেবর্লজ
এনপিএম ইআরআর! নোড-ভি v0.10.20
এনপিএম ইআরআর! npm -v 1.3.11
এনপিএম ইআরআর! পথ ../lib/node_modules/n/bin/n
এনপিএম ইআরআর! কোড EACCES
এনপিএম ইআরআর! ভুল 3
এনপিএম ইআরআর! স্ট্যাক ত্রুটি: EACCES, symlink '../lib/node_modules/n/bin/n'
এনপিএম ইআরআর!
এনপিএম ইআরআর! অতিরিক্ত লগিং বিবরণ পাওয়া যাবে:
এনপিএম ইআরআর! /home/heberlz/npm-debug.log
এনপিএম ইআরআর! ঠিক আছে কোড 0
নিচের ফোল্ডারগুলির পুনঃ দাবির মালিকানা ~ / .npm, / usr / lib / নোড, / usr / lib / node_modules, এবং নিম্নলিখিত সিমলিংক / usr / bin / নোড, / usr / bin / nodej
সুদোর পরে আমাকে কষ্টের মধ্যে না থাকার জন্য ইয়েমেন এবং তার জেনারেটরদের ইনস্টল করতে হবে :(
Npm এর ডিরেক্টরির পাথ সন্ধান করুন:
npm config get prefix
অনেক সিস্টেমের জন্য, এই / usr / স্থানীয় হবে।
বর্তমান ব্যবহারকারীর নাম (ইউজারনেম!) এর নামে npm এর ডিরেক্টরিগুলির মালিক পরিবর্তন করুন:
sudo chown -R $(whoami) $(npm config get prefix)/{lib/node_modules,bin,share}
এটি npm এবং কিছু অন্যান্য সরঞ্জাম (lib / node_modules, bin, এবং ভাগ) দ্বারা ব্যবহৃত উপ-ফোল্ডারগুলির অনুমতিগুলি পরিবর্তন করে।
এখানে সম্পূর্ণ বিবরণের জন্য লিঙ্ক
https://docs.npmjs.com/getting-started/fixing-npm-permissions
lubuntu 14.04.3 ব্যবহার করে, আমি nnpm এবং npm prefix এর মালিকানা পরিবর্তন করার চেষ্টা করেছি, আমার পথ আপডেট করেছিলাম, আমার হোম ডিরেক্টরিতে npm ইনস্টল করা মডিউলগুলি সুডো ছাড়াই, কিন্তু পথটি ভুল ছিল তাই linuxbew মত মডিউল পাওয়া যায় নি, linuxbew সমস্যাটি সমাধান করে দ্রুত নোড / এনপিএম জন্য here সেটআপ গাইড
আপনি যদি একটি ডেভেলপিং মেশিনে থাকেন তবে আপনি nvm ব্যবহার করে বিবেচনা করা বন্ধ করতে পারেন।
যদি না হয়, আপনি কেবল আপনার প্রিয় প্যাকেজ ম্যানেজার ব্যবহার করে ইনস্টল করতে চান।
যাই হোক না কেন হতে পারে, আমি এই উত্তর চেক করার সুপারিশ চাই
আমি পেভল গ্রিজেবের ব্যাখ্যাগুলি খুব দৃঢ়প্রত্যয়ী করে দেখি : তারা 3 টি সাধারণ সুডো কমান্ডগুলি উড়িয়ে দেয়, বিশ্বব্যাপী এনপিএম ইনস্টলগুলির জন্য আবার কখনো সুডো ব্যবহার করতে পারে না:
sudo chown -R $(whoami) /usr/local/lib/node_modules
sudo chown -R $(whoami) /usr/local/bin
sudo chown -R $(whoami) /usr/local/share
উবুন্টু 1২.04 এবং ক্রিস লি এর পিপিএ ব্যবহার করে আমার জন্য নিম্নলিখিত কাজগুলি ইনস্টল করুন:
npm config set prefix '~/.npm-packages'
এবং $ HOME /। npm-packages / bin $ PATH যোগ করে
.bashrc
যোগ করুন
export PATH="$PATH:$HOME/.npm-packages/bin"
https://.com/a/18277225 @passy থেকে দেখুন
এই সমস্যা এবং অন্যান্য কারণে একই কারণে ব্যবহারকারীর স্থানটিতে নোড ইনস্টল করা সমাধান করা যেতে পারে।
আপনি এটি শুধু আপনার টার্মিনালে অনুলিপি এবং পেস্ট করতে পারেন
NODEJS_ROOT=${NODEJS_ROOT:-~/nodejs}
cd /tmp
wget -N http://nodejs.org/dist/node-latest.tar.gz && tar xzf node-latest.tar.gz
NODEJS_CURRENT=$(tar tf node-latest.tar.gz|head -1)
mkdir -p $NODEJS_ROOT/$NODEJS_CURRENT
cd $NODEJS_CURRENT
./configure --prefix=$NODEJS_ROOT/$NODEJS_CURRENT && make install
cd $NODEJS_ROOT
rm current 2> /dev/null # Removes current symbolic link, if any
ln -s $NODEJS_CURRENT current
নড সর্বশেষ সংস্করণে আপডেট পেতে একই কমান্ড চালু করা যেতে পারে।
আপনার পরিবেশ সম্পাদনা করতে ভুলবেন না। শুধু একবার, কি
echo "export NODEJS_ROOT=$NODEJS_ROOT" >> $HOME/.bash_profile
echo 'export PATH=$NODEJS_ROOT/current/bin:$PATH' >> $HOME/.bash_profile
source $HOME/.bash_profile # reload your env, so you can use node right now
Sudo ছাড়া Node.js ইনস্টল কিভাবে একটি reabout হিসাবে এই নিবন্ধটি দেখুন।
এই বিষয় সম্পর্কে আরও সাধারণ সমাধানের জন্য (অর্থাৎ, স্থানীয়ভাবে সফটওয়্যার ইনস্টল করুন) dotsoftware ।
যদি আপনার কাছে ইতিমধ্যে আপনার $HOME/bin
একটি সহজ সমাধান কেবল ...
npm config set prefix ~
- নতুন নোড কমান্ডগুলি এখন আপনার
$HOME/bin
ডিরেক্টরিতে ইনস্টল হবে। - আপনার পথ পরিবর্তন করার প্রয়োজন নেই!
যেহেতু এই আলোচনাটি সত্যিই sudo
চালানোর নিরাপত্তা ঝুঁকি হ্রাস করার বিষয়ে, তাই sudo
সচেতন হওয়া উচিত যে কোনও নোড অ্যাপ্লিকেশন সম্ভবত এমন একটি অ্যাপ্লিকেশন নাম ইনস্টল করতে পারে যা আপনার ইনস্টল করা মনে করা নিবন্ধিত নোড প্যাকেজ নামটির সাথে মেলে না। সুতরাং একটি নিরাপত্তা ঝুঁকি আছে যে একটি npm install
একটি বিদ্যমান সিস্টেম কমান্ড বা আপনার ইতিমধ্যে $HOME/bin
মধ্যে প্রতিস্থাপন করা হবে। আপনি যদি উদ্বিগ্ন হন, তবে আপনি যে অ্যাপটি ইনস্টল করছেন তার package.json
ফাইলটিতে bin
এবং scripts
বৈশিষ্ট্যগুলি পরীক্ষা করুন।
সাধারণভাবে, এটি নিরাপদ:
- (ক) আপনার পথের মধ্যে
$HOME/bin
রাখুন যাতে সিস্টেম আদেশগুলি সরিয়ে দেওয়া হয় না। - (খ) অন্তর্ভুক্ত করবেন না "।" অথবা আপনার
$PATH
কোনও আপেক্ষিক পথ যাতে আপনি দুর্ঘটনাক্রমে কোনও কমান্ড চালান না যা বর্তমান ডিরেক্টরিতে থাকে।
রেফারেন্স:
- package.json বৈশিষ্ট্য
- npm ইনস্টল
- NodeJS নিরাপত্তা দুর্বলতা: nodesecurity.io ।
সবচেয়ে ভাল সমাধান আমি খুঁজে পেয়েছিলাম Node.js tar প্যাকেজ থেকে ব্যবহারকারীর হোম ডিরেক্টরিতে ইনস্টল করুন এবং lib ফোল্ডারের অবস্থানটি লিঙ্ক করুন। এখানেই সব পাবেন আপনি যা করতে চান
এটি নোডজগুলি ডিফল্ট / usr / local / এর পরিবর্তে ~ / .local / এর অধীনে ইনস্টল করবে।
Add this to your ~/.npmrc (create the file if it doesn't exist already):
root = /home/YOUR-USERNAME/.local/lib/node_modules
binroot = /home/YOUR-USERNAME/.local/bin
manroot = /home/YOUR-USERNAME/.local/share/man
Download the Nodejs source code from nodejs.org and install it under your ~/.local tree:
tar xf node......
cd node........
./configure --prefix=~/.local
make
make install
Create ~/.node_modules symlink. (This directory will be automatically searched when you load modules using require "module" in scripts. I'm not sure why Node doesn't search ~/.local/lib/node_modules by default.)
cd
ln -s .local/lib/node_modules .node_modules
Is ~/.local/bin in your path? Type
which npm
If it says ~/.local/bin/npm, you're done.
Otherwise, do this...
export PATH=$HOME/.local/bin:$PATH
...and add that line to your ~/.profile file, so it'll run every time you log in.
প্যাকেজগুলি ইন্সটল করার সময়ও যদি মালিকানা বা অনুমতির ত্রুটি ঘটে তবে চলমান হয়ে ~ / .local / dir এর মালিকানা পরিবর্তন করুন
chown -R user:user ~/.local/
এখন আপনি 'npm' এর মাধ্যমে প্যাকেজ ইনস্টল করতে ভাল হবেন
দ্রষ্টব্য: উপরের সব আদেশ ব্যবহারকারী হিসাবে চালানো হয়। SUDO বা রুট লগইন ব্যবহার করবেন না
কখনও '/ ইউএসআর / এলবিবি /' এর অধীনে ফোল্ডারের অনুমতি পরিবর্তন করবেন না। অনির্বাচিত ওএস নেতৃত্বাধীন হবে
সমস্যাটি আমি সুডোর সাহায্যে নোড ইনস্টল করেছি, এনপিএম মডিউল ইনস্টল করার সময় ত্রুটিগুলি এড়ানোর জন্য বিশ্বব্যাপী সুডোর সাথে নোড ইনস্টল করতে হবে না।
আমার সমাধান এই ভাবে নোড পুনরায় ইনস্টল করা ছিল:
Nodejs.org # থেকে আমার সর্বশেষ নোড-v0.10.20.tar.gz থেকে সর্বশেষ স্থিতিশীল নোড উত্স ডাউনলোড করুন
tar-zxf node-v0.10.20.tar.gz # অসম্পূর্ণ সূত্র
সিডি নোড-v0.10.20 # ধারক অসম্পূর্ণ ফোল্ডার
sudo chown -R $ USER / USR / স্থানীয়
./configure --prefix = / usr / স্থানীয় && তৈরি && ইনস্টল করুন
উল্লেখ্য এক জিনিস যে শুধুমাত্র / usr / স্থানীয় ফোল্ডারের মালিকানা গ্রহণ করা আমার ক্ষেত্রে কাজ করবে না কারণ নোড ইনস্টলেশন নিজেই সুডোর সাথে তৈরি করা হয়েছে
ইয়েমেন ইনস্টল করার শেষ ধাপ: # লোভী ইয়েমনি.এটি বলছে যে "npm install -g yo" ইতিমধ্যেই ঘোড়া এবং কৃপণ ইনস্টল করে, সেখানে ব্যর্থতার কিছু নমুনা রয়েছে যা ব্যর্থ হয়, তাই আমি এটি নিজে ইনস্টল করে স্থির করেছি
npm ইনস্টল-গ bower
npm ইনস্টল-G grunt
npm ইনস্টল-জি Yo
npm ইনস্টল-জেন জেনারেটর-কৌণিক