নোড.জেএস দ্বন্দ্ব: / এসবিন / নোড বনাম / ইউএসআর / বিন / নোড


32

আমার দুটি উবুন্টু 12.10 মেশিন রয়েছে: মেশিন এ একটি ভিএমওয়্যার ভিএম এবং মেশিন বি হ'ল এবং পুরানো এসার ল্যাপটপ। উভয় মেশিনে, আমি এপেট-গেট ব্যবহার করে নোড ইনস্টল করেছি। তবে মেশিন এ মূল বাইনারি হিসাবে /usr/bin/nodeএবং মেশিন বি হিসাবে ইনস্টল করে /usr/bin/nodejs। এখানে আমি কিছু আচরণগুলি পর্যবেক্ষণ করেছি:

  1. উভয় মেশিন কমান্ডের /usr/bin/nodeপ্রতিক্রিয়া হিসাবে ফিরে আসে which node। তবে মেশিন বি তে এ জাতীয় কোনও ফাইল নেই।
  2. কমান্ড জারি করা nodeবি মেশিনের জন্য নয়, বি এর nodejsপরিবর্তে , মেশিন এ এর ​​জন্য কাজ করে।
  3. বি-তে, / এসবিন / নোড নামে একটি বাইনারি রয়েছে, এ-তে এটি নেই।

উভয় মেশিনে বিকাশ করার সময় এই আচরণগুলি অসঙ্গতি সমস্যা সৃষ্টি করে। আপাতত, আমি বি তে বাইনারিগুলির নাম পরিবর্তন করে প্রায় কাজ করেছি:

sudo mv /sbin/node /sbin/node-sbin
sudo ln -s /usr/bin/nodejs /usr/bin/node

আসলেই এটি ঠিক করার কোনও উপায় আছে, যাতে নোডের /usr/bin/nodeপরিবর্তে ইনস্টল করা হবে /usr/bin/nodejs?

উত্তর:


15

উবুন্টু 13.10-এ উপরের সমস্ত উত্তর আমার পক্ষে কার্যকর হয়নি। আমি নোডেজ-লিগ্যাসি ইনস্টল করার পরে অবশেষে এটি কাজ করেছিল

sudo apt-get install nodejs-legacy

এটি সঠিকভাবে /usr/bin/nodeআমার জন্য সরবরাহ করা হয়েছে, যাতে উদাহরণস্বরূপ nodemonব্যবহার করা যেতে পারে।


কোন ধারণা কেন আমাদের এটি ইনস্টল করতে হবে? এটি কি আসলে কোনওভাবে সিমলিংক তৈরি করে? নোড কেন এর এক্সিকিউটেবলের নাম নোডেজে পরিবর্তন করে?
আগস্টিন রিডিংগার

"নোড" নামটি অনেক পুরানো প্রোগ্রামের সাথে বিরোধী। দেখুন lists.debian.org/debian-devel-announce/2012/07/msg00002.html নিচে এবং Leftium এর উত্তর।
রবি বাসাক

36

আপডেট:nodejs-legacy প্যাকেজটি ব্যবহার করতে নীচের পরিবর্তিত নির্দেশাবলী (( নোড-উত্তরাধিকার সম্পর্কে আরও তথ্য )

বিরোধী নোড প্যাকেজ সম্পূর্ণরূপে অপসারণ করার চেষ্টা করুন:

sudo apt-get --purge remove node
sudo apt-get --purge remove nodejs-legacy
sudo apt-get --purge remove nodejs

sudo apt-get install nodejs-legacy

# Confirm it worked
node --version       # v0.10.13
ls -la `which node`  # ... /usr/bin/node -> /etc/alternatives/node

আমি যখন অজান্তেই নন-নোড.জেএস nodeপ্যাকেজটি ইনস্টল করেছি তখন আমার সাথে এটি ঘটেছিল । যদিও আমি apt-get remove nodeসঠিক nodejsপ্যাকেজ ইনস্টল করার আগেই করেছি, আমি অনুমান করি --purgeযুক্তিটি প্রয়োজনীয়।

পটভূমি তথ্য :

নোড প্যাকেজ (অপেশাদার প্যাকেট রেডিও নোড প্রোগ্রাম) এর সাথে নামকরণের বিরোধ রয়েছে এবং নোডেজ বাইনারিটির নাম নোড থেকে নোডেজ করা হয়েছে। আপনাকে / ইউএসআর / বিন / নোড থেকে / ইউএসআর / বিন / নোডেজে সিলিমিংক করতে হবে বা আপনি এই দ্বন্দ্ব এড়াতে অপেশাদার প্যাকেট রেডিও নোড প্রোগ্রামটি আনইনস্টল করতে পারেন।


পটভূমি তথ্যের জন্য আপনাকে ধন্যবাদ। এই মুহুর্তে, চেষ্টা করার মতো এই মেশিনগুলির কোনও আমার কাছে নেই, তবে আমি আশা করি শীঘ্রই আমি কোনও দিন আবার ঘুরে আসতে পারি।
হাই ভু

এটি আপনাকে /usr/bin/nodeউবুন্টু ১৩.১০ এ পাওয়া যায় না। নীচে @ ব্যবহারকারীর 229115 এর উত্তর কাজ করে।
জিম স্টুয়ার্ট

1
উবুন্টু দিয়ে 13.10 sudo apt-get install nodejs nodejs-legacyআপনাকে নোড.জেএস nodeহিসাবে বাইনারি দেবে তবে আপনি যদি ইতিমধ্যে node(অপেশাদার প্যাকেট রেডিও নোড প্রোগ্রাম) ইনস্টল করেন তবে আপনাকে অবশ্যই এটি অপসারণ করতে হবে।
jonasfj

1
@ অগাস্টিনরিডঞ্জার: আমি আমার উত্তর আপডেট করেছি। আমি মনে করি যে 'ভুল কনফিগার্ড' প্যাকেজগুলি মুছে ফেলা এবং প্যাকেজ ইনস্টল করার উভয়ের সমন্বয় nodejs-legacyকাজ করবে।
লেফটিয়াম

1
ধন্যবাদ এটি খুব পরিষ্কার। প্রকৃতপক্ষে এটি nodejs-lecacyপ্যাকেজ ইনস্টল করার সময় কার্যকর হয় যা nodejsপ্রকৃত
বাস্তবায়নের

11

দুর্ভাগ্যক্রমে আমার জন্য, একটি সিমিলিংক তৈরি করা কার্যকর হয়নি। আমার জন্য একটি উপকার তৈরি করার পরেও কী কাজ করেছিল। ইন ~/.bashrcবা ~/.bash_aliases(যদি ~/.bashrcলোড এই ফাইল), নিম্নলিখিত পংক্তি যোগ করুন:

alias node="nodejs"

bashকনসোলে টাইপ করে আপনার বাশ সেশনটি পুনরায় আরম্ভ করুন এবং আপনার উপনামটি এখন কাজ করবে।


2
যখন আমি একটি সিমিলিংক তৈরি করেছি, আমি অন্য টার্মিনাল শুরু না করা পর্যন্ত এটি কাজ করে না। আপনার টার্মিনালটি পুনরায় চালু করার চেষ্টা করুন ... বা আমার উত্তর যা সিমলিংক / এলিয়াস ছাড়া কাজ করে ^^
লেফটিয়াম

@ লিফটিয়াম: আপনারও চালানো দরকার: source ~/.bashrc.bashrc ফাইলটি পুনরায় লোড করতে (আপনি যদি টার্মিনাল পুনরায় আরম্ভ করতে চান) আরও পড়ুন ..
দীপক জয়

একটি নতুন অবস্থানে সিমলিংক করার জন্য অবশ্যই hash nodeআপনার বিদ্যমান টার্মিনালগুলিতে একটি অনুরোধ প্রয়োজন , কারণ আধুনিক শেলগুলি প্যাথটিতে পূর্বে দেখা কমান্ডগুলির অবস্থান মনে রাখে। এই hashধরনের শেলগুলিতে বিল্টিন কমান্ড তাদের পুনরায় চেহারাটি পুনরায় করতে এবং নতুন অবস্থানটি মনে রাখতে বলে।
mtraceur

7

আমি মনে করি এটাই:

sudo আপডেট-বিকল্পগুলি - ইনস্টল / ইউএসআর / বিন / নোড / ইউএসআর / বিন / নোডেজ 10

ডেবিয়ান বিকল্প ব্যবহার করা।


ধন্যবাদ। এই বিষয়ে উবুন্টুর সিদ্ধান্তের প্রতিকারের জন্য এটি সর্বাধিক প্রত্যক্ষ উপায়।
ড্র হয়েছে

@ এটিকে দেখে মনে হচ্ছে উবুন্টু উবুন্টু বাগ বাগস.আলানচপ্যাড.এন.বিউন্টু /+সোর্স / নোড /+ বুগ / ১০০৩০১২২ এর উপর ভিত্তি করে ডিবিয়ান এর সিদ্ধান্ত অনুসরণ করেছে
লয়েড ডিওল্ফ

1

দেরীতে উত্তর, তবে আপ টু ডেট তথ্য ...

আপনি যদি নোড গিথুব ইনস্টলেশন রিডমি থেকে প্রস্তাবিত পদ্ধতিটি ব্যবহার করে নোড.জেএস ইনস্টল করেন তবে এটি নোডোসোর্স ব্লগ নিবন্ধের নির্দেশাবলী অনুসরণ করার প্রস্তাব দেয়, পুরানো অপ্ট - গেট রেপো থেকে ইনস্টল করার পরিবর্তে নোড.জেগুলিnode কমান্ডটি ব্যবহার করে চালানো উচিত , nodejsকমান্ড হিসাবে , একটি নতুন sylink না করে।

নিবন্ধ থেকে এই পদ্ধতিটি হ'ল:

# Note the new setup script name for Node.js v0.12
curl -sL https://deb.nodesource.com/setup_0.12 | sudo bash -

# Then install with:
sudo apt-get install -y nodejs

দ্রষ্টব্য যে এটি v0.12 এর জন্য, যা সম্ভবত ভবিষ্যতের ক্ষেত্রে খুব অল্প বয়সেই পুরানো হয়ে যাবে।

এছাড়াও, যদি আপনি কোনও কর্পোরেট প্রক্সি (আমার মত) এর পিছনে থাকেন তবে প্রক্সিটির জন্য প্রয়োজনীয় এনভ ভার্সগুলি সংরক্ষণ করতে আপনি sudo কমান্ডে -E বিকল্পটি যুক্ত করতে চান:

curl -sL https://deb.nodesource.com/setup_0.12 | sudo -E bash -

1

উপর উবুন্টু 14.04 আমি একই নোড সমস্যা ছিল। আমার "নোড" এবং "নোডেজ" কাজ ছিল না। আমি করেছি

sudo apt-get remove node

এবং ঠিক তার পরে, নোড চলছিল, এবং নোডেজগুলিও চলছে :) :) আমি লিনাক্সে নতুন এবং এটি আমার কাছে একটি ক্ষেপণাস্ত্র। তবে বাওয়ার চলছে!


0
sudo getconf LONG_BIT
sudo uname -p
  • আপনার সিপিইউ আর্কিটেকচারটি নিশ্চিত করুন
  • Https://nodejs.org/dist/ (নোট: বিভিন্ন সিপিইউ আর্কিটেকচারের জন্য বিভিন্ন নোড.জেএস বিতরণের বিভিন্ন সংস্করণে) ডিরেক্টরিতে আপনার নোড.জেএস বিতরণটি সন্ধান করুন tree

আমার ডেস্কটপটি বর্তমানে উবুন্টু 15.10 এএমডি 64, সুতরাং আমি আমার ইনস্টলেশন উদাহরণে নিম্নলিখিত URL টি ব্যবহার করব (আবার বিতরণের পরিবর্তিত হবে):

sudo wget https://nodejs.org/dist/v5.0.0/node-v5.0.0-linux-x64.tar.gz

তারপরে ডিরেক্টরিটি আপনার ডাউনলোড ডিরেক্টরিতে পরিবর্তন করুন :

sudo cd /home/name/Downloads

আপনার ডাউনলোড ডিরেক্টরি থেকে নিম্নলিখিতটি প্রয়োগ করুন:

sudo tar -C /usr/local --strip-components 1 -xzf node-v5.0.0-linux-x64.tar.gz

নিম্নলিখিত সহ আপনার node.js ইনস্টলেশন নিশ্চিত করুন:

sudo ls -l /usr/local/bin/node
sudo ls -l /usr/local/bin/npm

সুত্র। http://www.hostingadvice.com/how-to/install-nodejs-ubuntu-14-04/


1
-1 কেবল tarকমান্ডের প্রয়োজন sudo
মুড়ু

+1 আরও ভাল উপায়টির জন্য আপনাকে অনেক ধন্যবাদ - আমার জন্য সেরা উপায়!
1111161171159459134
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.