ইসি 2 তে: সুডো নোড কমান্ড পাওয়া যায় নি, তবে সুডো ছাড়া নোড ঠিক আছে is


120

আমি সবেমাত্র একটি নতুন ইসি 2 মাইক্রো ইনস্ট্যান্সে নোডেজ ইনস্টল করেছি।

আমি এটি সাধারনত ইনস্টল করেছি, ./configure -> make -> sudo make install।

সমস্যা: আমি যখন ইসি 2 ব্যবহারকারীর অধীনে "নোড" চালাই, তখন এটি পুরোপুরি চলে। আমি যখন "সুডো নোড" চালাই, এটি ব্যর্থ হয়।

আমি জানতে পেরেছি যে নোডটি এখানে রয়েছে:

[ec2-user@XXXX ~]$ whereis node
node: /usr/local/bin/node /usr/local/lib/node

এবং বর্তমান পথ হয়

[ec2-user@XXXX ~]$ echo $PATH
/usr/local/bin:/bin:/usr/bin:/opt/aws/bin:/home/ec2-user/bin

তবে, সুডো পথটি

[root@ip-10-112-222-32 ~]# echo $PATH
/usr/local/sbin:/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin:/root/bin

তারপরে আমি নোডের পাথগুলিকে অন্তর্ভুক্ত করার জন্য রুট PATH সম্পাদনা করার চেষ্টা করেছি, সুতরাং যখন আমি রুট হিসাবে লগ ইন করি তখন "নোড" চালিত হয় - তবে আমি যখন ইসি 2-ব্যবহারকারী হিসাবে লগ ইন করব এবং "সুডো নোড" চালাব তখন এটি কার্যকর হবে না ।

সঠিকভাবে এনপিএম ইনস্টল করার জন্য আমার এটি দরকার। "সুডো নোড" চালানোর সময় নোড পাথ কীভাবে অন্তর্ভুক্ত করবেন সে সম্পর্কে কোনও ধারণা?



অনেক চেষ্টা করার পরেও আমি এটি করেছি এবং এটি কাজ করে: <pre> sudo su निर्यात PATH = $ PATH: usr / স্থানীয় / নোড / কার্ল npmjs.org/install.sh | sh </pre>

উত্তর:


319

হ্যাঁ, এটি কিছুটা বিরক্তিকর তবে আপনি কয়েকটি লিঙ্কের মাধ্যমে এটি ঠিক করতে পারেন:

sudo ln -s /usr/local/bin/node /usr/bin/node
sudo ln -s /usr/local/lib/node /usr/lib/node
sudo ln -s /usr/local/bin/npm /usr/bin/npm
sudo ln -s /usr/local/bin/node-waf /usr/bin/node-waf

আরও কিছু হতে পারে তবে আমি এখন পর্যন্ত চালিয়ে এসেছি। নোড-ওয়েফের অভাবের কারণে কিছু npmইনস্টল বরং ক্রিপ্টিক ত্রুটি বার্তায় ব্যর্থ হবে ।


আমি শুধু কৌতূহলী, এই লিঙ্কিংটি কি কেবলমাত্র অ্যামাজন এএমআই সিস্টেমে করা উচিত? অ্যামাজন এএমআই সিস্টেম ব্যবহারকারীর পথ থেকে মূলের পথ পৃথক করে?
ব্যবহারকারীর 482594

ত্রুটিযুক্ত হওয়ার node-wafকারণগুলির অভাব npm rebuild। এর প্রতিকারের কি কোনও পরিষ্কার উপায় আছে? আমি প্রয়োজন কি?
ব্যবহারকারী730569

1
এটি বেশ কয়েকটি কারণে আমার পক্ষে কাজ করে নি। 1) আমার sudo অ্যাক্সেস নেই। আমি একটি শেয়ার্ড হোস্টে আছি। 2)/usr/local বিদ্যমান নেই। যদিও আমি একটি ডিরেক্টরি ~ / স্থানীয় তৈরি করেছি। 3) সরানোর পরে /usrএবং sudoকোডের এই লাইনগুলির প্রত্যেকটি থেকে এবং আমার কনসোলের মাধ্যমে এগুলি চালানোর পরে, কিছুই পরিবর্তন হয়নি।
ওল্ফপ্যাক'০৮

1
এটা ছিল সহায়ক। তবে কেউ কীভাবে এবং কীভাবে এটি জিনিসগুলি কাজ করে তা ব্যাখ্যা করতে পারে?
তরুণ গুপ্ত

2
@ তরুন: শেলের প্যাটথ ভেরিয়েবলটি পড়ুন এবং কোনও প্রদত্ত কমান্ডের জন্য কোন বাইনারি কার্যকর করতে হবে তা অনুসন্ধান করতে কীভাবে এটি ব্যবহার করা হয়। Ln কমান্ড একই ফাইলের সাথে কেবল একটি দ্বিতীয় নাম যুক্ত করে।
মাইকেল ডিলন

33

আমি যোগ /usr/local/binকরতে secure_path/etc/sudoers

$ sudo visudo

তারপরে এই লাইনটি পরিবর্তন করুন:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin

প্রতি:

Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin

19

এটি ঘটে কারণ নোড এক্সিকিউটেবল / ইউএসআর / বিনে পাওয়া যায় নি। সুতরাং পদক্ষেপগুলি অনুসরণ করুন:

  1. নোড খুঁজে:

whereis node

আমার ক্ষেত্রে: node: /home/<my_user>/.nvm/versions/node/v8.9.4/bin/node

  1. নোডের জন্য একটি প্রতীকী লিঙ্ক তৈরি করুন:

    sudo ln -s /home/<my_user>/.nvm/versions/node/v8.9.4/bin/node /usr/bin/node

হয়ে গেল!


দুর্দান্ত টিপ - নীচের লিঙ্কটি অনুসরণ করার পরে আমি যেমন আমার AWC2 উদাহরণে sudo ln -s /home/ec2-user/.nvm/versions/node/v8.11.3/bin/npm /usr/bin/npmসুডো করার চেষ্টা npm installকরছিলাম তেমনটিও করেছি
NULL পয়েন্টার

9

নোডের জন্য পরম পথটি ব্যবহার করবেন না কেন? আপনি যদি একটি upstart স্ক্রিপ্ট ব্যবহার করার পরিকল্পনা করছেন তবে যাইহোক এটির জন্য একটি পরম পথ প্রয়োজন।

sudo /usr/local/bin/node server.js

1
সর্বোত্তম সমাধান, কাজ করে এবং সমস্ত lnসমাধানের মতো করে সিস্টেমের সাথে গোলযোগ না করে।
সিডঅফসি

5

নিম্নলিখিত চেষ্টা করুন:

export PATH=$PATH:/usr/local/bin
sudo node --version

2
ফাইলগুলিতে secure_pathসেট করা বিতরণগুলির জন্য কাজ করবে না sudoers
কেনার্ব

5

আপনি কমান্ড nodeব্যবহার করে প্যারেন্ট (অ-সুডো শেল) থেকে এক্সিকিউটেবলের পুরো পথটি পার করতে পারেন which

sudo `which node`

4

আমার জন্য, এটি কেবল নোড ফোল্ডারের মালিকানা মূল থেকে ইক 2-ইউজারে (ইসি 2-ব্যবহারকারী হিসাবে লগ ইন করা) পরিবর্তন করতে কাজ করেছে।

(দ্রষ্টব্য: আমি আমার নোড ফোল্ডারটি / var / lib / এ তৈরি করেছি)

sudo chown -R ec2-user /var/lib/node/

তারপর

npm install mongojs

ভাল কাজ করা উচিত (যদি আপনি অবশ্যই এনপিএম ইনস্টল করে থাকেন!)


3

এখানে এমন একটি দৃষ্টিভঙ্গি রয়েছে যা প্রতিলিঙ্ক ব্যবহার করে না বা মূলের প্রয়োজন নেই:

$ git clone https://github.com/joyent/node.git
$ cd node
$ mkdir ~/opt
$ export PREFIX=~/opt; ./configure
$ make
$ make install
$ echo 'export PATH=~/opt/bin:${PATH}' >> ~/.bashrc

তারপরে আমি করলাম:

$ git clone https://github.com/isaacs/npm.git
$ cd npm
$ make install

মূল হিসাবে নোড না চালানোর সুবিধাগুলি এখানে আলোচনা করা হয়েছে:

http://increaseyourgeek.wordpress.com/2010/08/18/install-node-js-without-using-sudo/

এর সাথে ইনলাইন:

https://github.com/joyent/node/wiki/Installation



1

আমার ক্ষেত্রে, নোড সুডো প্রিফিক্স ছাড়াই ইনস্টল করা হয়েছিল । সুতরাং নুড সুপারভাইজারের জন্য অনুপলব্ধ ছিল যে এটি কেন কাজ করছে নাsudo node server


-1

আমি জানি না এটি সঠিক উপায় কিনা, তবে আমি এটিই করেছি ...

sudo su
export PATH=$PATH:/home/ec2-user/local/node/bin
curl http://npmjs.org/install.sh | sh
chown -R ec2-user /home/ec2-user/local/node
exit

এই এনটিএম ইনস্টল করা হয়েছে এবং আমি এখন চাইলে যে কোনও প্যাকেজ ইনস্টল করতে পারি।

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