মূল (বা sudo) থেকে এনভিএম ব্যবহার করতে পারবেন না


104

আমি উল্লেখ করেছি যে আমার অ্যাপ্লিকেশনটি নোডজেএস-এর বিভিন্ন সংস্করণ ব্যবহার করে যখন চলেছে sudo

$ node -v
v0.10.23
$ sudo node -v
v0.11.8-pre

এই v0.11.8-প্রাকটি আমাকে কিছু সমস্যা সৃষ্টি করেছে, তাই আমি অবশ্যই এটি ব্যবহার করতে চাই না, তবে আমি এটি মূলের জন্য পরিবর্তন করতে পারি না।

$ sudo nvm use v0.10.23
sudo: nvm: command not found

আমি রুট ব্যবহারকারীর থেকে এনভিএম ইনস্টল করার চেষ্টা করেছি, তবে "এনভিএম ইতিমধ্যে ইনস্টল করা" ত্রুটি পেয়েছে, তবে এখনও চলার সময় এনভিএম পাওয়া যায় নি sudo। আমার সমস্যা কি?


3
sudo -s তারপরে ইনস্টল করার চেষ্টা করুন nvm
গেমস ব্রেনিয়াক

@GamesBrainiac দুঃখিত, কিন্তু আমি লিখেছি যে আমি রুট থেকে এটি ইনস্টল করার চেষ্টা করেছি
Vitalii Korsakov

/root/.nvm/ মুছে ফেলতে এবং স্ক্র্যাচ থেকে এনভিএম পুনরায় ইনস্টল করার চেষ্টা করুন
আন্তোনিও ই

কোনও /root/.nvm নেই। আমি সুডো থেকে এনভিএম ইনস্টল করেছি এবং এটি নিয়মিত ব্যবহারকারীর হোমডিরে ইনস্টল করা হয়েছে
ভিটালি কোর্সাকভ

4
আপনার github.com/xtuple/nvm
Yoo Matsuo

উত্তর:


220

নীচের কমান্ডগুলির তালিকা (উত্স: ডিজিটালওশন ) সমস্যার সমাধান করছে বলে মনে হচ্ছে

n=$(which node); \
n=${n%/bin/node}; \
chmod -R 755 $n/bin/*; \
sudo cp -r $n/{bin,lib,share} /usr/local

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

আশাকরি এটা সাহায্য করবে!


7
ধন্যবাদ, এটি আমাকে সাহায্য করেছে।
বিশাল কুমার ভার্মা

7
ধন্যবাদ! এটি আমার অনেক সময় সাশ্রয় করেছে
কুইন্টন পাইক

4
পারফেক্ট! তোমাকে অনেক ধন্যবাদ.
জিন-ব্যাপটিস্ট লুয়াজেল

2
অসাধারণ! গত রাতে আমি সমস্ত জায়গাতে এনপিএমের জন্য মরিয়া হয়ে অনুমতিগুলি পরিবর্তন করে আমার পুরো রাসপিআই 3 সিস্টেমটি নষ্ট করেছি, আজ আমি প্রতিটি এনপিএম কলের জন্য সুডোর প্রয়োজন ছাড়াই বিশ্বব্যাপী নোড / এনপিএম ইনস্টল করার সর্বোত্তম সমাধানের সন্ধানে 3 ঘন্টা ব্যয় করেছি। আপনার সমাধান এই পোস্টের সাথে ভাল গিয়েছিলাম losant.com/blog/how-to-install-nodejs-on-raspberry-pi
বশ

3
এটি দুর্দান্ত বিকল্প হিসাবে মনে হচ্ছে, তবে আমি এই ত্রুটিগুলি chmod: cannot operate on dangling symlink ‘/home/ec2-user/.nvm/versions/node/v7.1.0/bin/node-debug’ chmod: cannot operate on dangling symlink ‘/home/ec2-user/.nvm/versions/node/v7.1.0/bin/node-inspector’
পেয়েই চলেছি

129

আমার সমাধান হ'ল সংস্করণগুলি থেকে প্রতীকী লিঙ্কগুলি তৈরি করা nodeএবং npmআমি এটি ব্যবহার করছি /usr/local/bin:

sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/node" "/usr/local/bin/node"
sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npm" "/usr/local/bin/npm"

এটি তৈরি করে npmএবং nodeসমস্ত ব্যবহারকারীর জন্য উপলব্ধ।


1
দুর্দান্ত সমাধান। কেবল "দ্বিতীয় লাইনের শেষে ... যুক্ত করুন ... (কোনও কারণে আমি নিজে এটিকে সম্পাদনা করতে পারিনি)
রায় রায় রোড

1
দুর্দান্ত, এটি এখন পর্যন্ত সেরা সমাধান। এইভাবে, রুট সর্বদা আপনি এনভিএম ব্যবহারকারীর জন্য একই এনপিএম / নোড সংস্করণটি ব্যবহার করবেন, ধন্যবাদ!
লুস্কভালমিড

3
দুর্দান্ত সমাধান, তবে আপনি যদি ব্যবহার করছেন নোডের সংস্করণটি পরিবর্তন করেন তবে আপনাকে উপরের কমান্ডগুলি আবার চালাতে হবে।
দরজা_সংখ্যা_পরিবার

4
আমি npxপ্রায়শই ব্যবহার করি । সুতরাং আমি এটিও যুক্ত করেছি:sudo ln -s "$NVM_DIR/versions/node/$(nvm version)/bin/npx" "/usr/local/bin/npx"
থমাস

@ সিম্পলজে আপনি কীভাবে একই ব্যবহার করবেনbabel-node
ব্যবহারকারীর

14

আপনার সমস্যাটি হ'ল, nvmআপনি যখন ব্যবহার করবেন তখন সেই পথে নেই sudo

তাই টাইপ করুন

$ which nvm

এবং ফলাফল কিছু হবে

/home/abc/mynvm/nvm

এর সাথে আবার চেষ্টা করুন sudo:

sudo /home/abc/mynvm/nvm use v0.10.23

আমি ধরে নিলাম আপনি এরপরে এই সমস্যাটি চালিয়ে গেছেন যে মূল ব্যবহারকারী 0.10.13-সংস্করণ খুঁজে পাচ্ছেন না, তবে পরবর্তী ত্রুটি বার্তাটি দেখতে দিন ...


42
which nvmআউটপুট কিছুই না
ভিটালি Korsakov

6
এটি রুটের জন্য কিছুই আউটপুট দেয়
ভিটালি কোর্সাকভ

3
সমস্যা হ'ল আমি কখনই মূল হিসাবে লগ ইন করি না। আমি কেন? আমার যদি কোনও রুট অ্যাক্সেসের প্রয়োজন হয় তবে আমি সর্বদা ব্যবহার করি sudo। হ্যাঁ, আমি রুট হিসাবে লগ ইন করতে এবং এনভিএম ইনস্টল করতে পারি, তবে ভবিষ্যতে আমি চালাতে পারিনি sudo nvm use v0.10.25। সুতরাং আমি sudo nodeব্যবহারকারীর কাছ থেকেও ব্যবহার করতে পারিনি ।
ভিটালি কোর্সাকভ

2
which nvmকখনও কাজ করে না, তাই না? nvmএক্সিকিউটেবল নয়, এটি শেল ফাংশন। github.com/creationix/nvm/issues/540
ম্যাট

2
আমি সম্প্রতি which nvmএখানে একটি অনুরূপ প্রশ্ন জিজ্ঞাসা করেছি : stackoverflow.com/questions/49156104/…type nvm এর সংজ্ঞাটি প্রকাশ করতে ব্যবহার করুন । যেমন ম্যাট বলেছেন, এটি একটি শেল ফাংশন।
মার্টিন ব্রাউন

13

মূল কারণ হ'ল nvmআসল প্রোগ্রাম নয়। এটা একটা ব্যাশ ফাংশন যা ব্যবহারকারীর লোড পরার এর .profile, .bashrcঅথবা ... সুতরাং sudoস্বয়ংক্রিয়ভাবে এটি আপ সবচেয়ে অন্যান্য প্রোগ্রামের মত $ PATH- থেকে বাছাই করে না।

বিকল্প নোড সংস্করণ পরিচালক হ'ল n: https://github.com/tj/n । এটা একটা বাস্তব প্রোগ্রাম, তাই sudoএটি কোনো হ্যাক ছাড়া $ PATH- মাধ্যমে কুড়ান হবে (যতদিন sudoহয়েছে /usr/local/binতার $ PATH- এ)।

sudo npm install -g n  # install 'n' globally
which n                # should be /usr/local/bin/n

sudo n lts             # need sudo to switch node versions
node --version         # v6.10.0
sudo node --version    # v6.10.0

পারফেক্ট। ধন্যবাদ "এনভিএম কোনও সমস্যা নয়, তবে একটি বাশ ফাংশন" :)
অন্য

হাহা, "প্রোগ্রাম" এর পরিবর্তে আমার ভুল বানান "সমস্যা" সম্পর্কে সবেমাত্র বুঝতে পেরেছি;)।
অন্য

7

README অনুযায়ী

এনভিএম ব্যবহার করার সময় আপনার sudoসাথে বিশ্বব্যাপী কোনও মডিউল ইনস্টল করার দরকার নেই npm -g, তাই করার পরিবর্তে এটি করুন sudo npm install -g gruntdonpm install -g grunt

সুডো এনপিএম দরকার?

আমার ক্ষেত্রে, আমার দরকার sudo npm run startযাতে কিছু ফাইলে অ্যাক্সেসের দরকার যা রুট অ্যাক্সেসের প্রয়োজন হয়। এই সমস্যা অনুযায়ী ,

আপনি ব্যবহার করবেন না sudo। পরিবর্তে আপনার ফাইলটি chmod / chown করা উচিত যাতে এনভিএম ব্যবহারকারীর ফাইলটিতে অ্যাক্সেস থাকে;

যোগফল

এনভিএম এর রক্ষণাবেক্ষণকারী দৃ strongly়ভাবে বিশ্বাস করে যে আমাদের দরকার নেই sudo: পি


6

আমার আপনার সমস্যা ছিল। অবশেষে আমি এটি প্রায় কাজ করেছি। এখানে আমার সমাধান:

  1. এনভিএম এবং নোডেজ আনইনস্টল করুন। এখানে কিছু সহায়ক লিঙ্কগুলি রয়েছে: এনভিএম আনইনস্টল । আপনি যদি অ্যাপটি-গেট ব্যবহার করে নোডেজ ইনস্টল করেন, আপনি কমান্ডটি দিয়ে এটি আনইনস্টল করতে পারেন apt-get purge nodejs
  2. একটি বিশ্বব্যাপী এনভিএম ইনস্টল করুন। এই পৃষ্ঠাটি দেখুন: এনভিএম গ্লোবাল । যেমনটি বলা হয়েছে, "স্ট্যান্ডার্ড এনভিএম মাল্টি-ইউজার বা মূলযুক্ত পরিবেশে কাজ করা অসুবিধাগুলি জানে।"

আপনার টার্মিনালটি পুনরায় চালু করার পরে, আপনি কমান্ডটি চালাতে পারেন sudo nvm ls


1
এই শাখাটি 12 কমিট এগিয়ে, 1123 ক্রিয়েমিক্স্সের পিছনে কমিট করে: মাস্টার। এনভিএম-এর জন্য xtuple রেপো থেকে সরাসরি নেওয়া হয়েছে
MrMesees


4

আমি আমার মেশিনে একই চেষ্টা করেছি যেখানে আমারও আছে nvmএবং আমার স্বচ্ছলতাও রয়েছে ভিন্ন প্রতিক্রিয়া:

$ sudo node --version                                                                                                                                                                    
sudo: node: command not found

আমার অনুমান যে আপনি এনভিএম এর বাইরে নোড 0.11 ইনস্টল করেছেন। ( প্যাকেজ পরিচালক বা এমনকি উত্স থেকে )

অতএব, sudo মাধ্যমে নোড চলমান পরিবর্তে এই স্ট্যান্ডেলোন নোড নিতে হবে।

এটা কি বোধগম্য নাকি আমি ভুল করছি?


হ্যাঁ তুমিই ঠিক. আমি নোড এবং তারপরে এনভিএম ইনস্টল করেছি । তবে সাধারণ ব্যবহারকারীর জন্য সবকিছু ঠিকঠাক কাজ করে এবং মূলের জন্য কাজ করে না।
ভিটালি কোর্সাকভ

1
আহ সব ঠিক আছে. তারপরে, আমি মনে করি যে এনভিএম মূল হিসাবে চালানো নয়। প্রকৃতপক্ষে আমি সুন্দর যে ব্যবহারকারীর জমিতে দৌড়াদৌড়ি একটি পছন্দসই বৈশিষ্ট্য। : যাইহোক, এই আপনি সাহায্য করতে পারে github.com/creationix/nvm/issues/5
Aurélien Thieriot

এই লোকটি স্পষ্টতই একটি বিশেষ এনভিএম তৈরি করেছে যা sudo মোডে চালিত হয়: github.com/xtuple/nvm । দুর্ভাগ্যক্রমে শুধুমাত্র সুডো মোডে। এটি গ্রহণযোগ্য কিনা তা আমি জানি না
অরোলিয়ান থিয়েরিয়ট

0

এর সাথে বিশ্বব্যাপী এনভিএম ইনস্টল করুন
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | sudo bash


ক্রিয়েশনিক্স লেখকরা এনভিএম, আমি এই তৃতীয় পক্ষের
এনভিএম

4
এই শাখাটি 12 কমিট এগিয়ে, 1123 ক্রিয়েমিক্স্সের পিছনে কমিট করে: মাস্টার। এটি একটি সমস্যা, দয়া করে লিঙ্কটি সরিয়ে ফেলুন
মিস্টারমিসিজ

8
এই উত্তরটি আমার চোখকে রক্তক্ষরণ করে। আপনার কেবল কিছু ডাউনলোড করা উচিত নয় এবং এটি একটি সুডো বাশ,
ডাব্লুটিএফ

আসলে, আজকাল উইজেট কমান্ডটি শেষ হবে | bash, কোথাও কোনও সুডো নেই: এনভিএম-শ / এনভিএম: নোড সংস্করণ পরিচালক
এলিস ভ্যান লুইজ

0

এর সহজ সমাধানটি হ'ল এনভিএম.শকে যেখানেই হোক এক্সিকিউটেবল হিট করা।

sudo /home/ubuntu/.nvm/nvm.sh install node

এটি আমার পক্ষে দুর্দান্ত কাজ করে (ধরে নিলে এটি ইনস্টলনের পথ)।

সম্পূর্ণ ইনস্টল পদ্ধতিটি দেখতে হবে

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.0/install.sh | bash
export NVM_DIR="/home/ubuntu/.nvm"

[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

এবং তারপরে আপনি নতুন ইনস্টল করা এনভিএম.শকে আঘাত করতে উপরের কমান্ডটি চালাতে পারেন

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