নোড জেএস ইনস্টল করার জন্য কীভাবে টার কমান্ড কাজ করে


10

আমার মেশিনে নোড ইনস্টল করার সময়, আমি নীচের কমান্ডটি ব্যবহার করেছি যা আমি একটি ওয়েবসাইটে পেয়েছি।

tar --strip-components 1 -xzf /usr/save/node-v4.2.1-linux-x64.tar.gz

আমি জানি যে tar -xzfসংরক্ষণাগারগুলি নিষ্কাশন করতে ব্যবহৃত হয় তবে আমি জানতে চাই নোড কীভাবে ইনস্টল হচ্ছে?

আমি এটিকে এটি ইনস্টল করার চেষ্টা করেছি। আমি /usr/localনীচের কমান্ডটি ব্যবহার করে নোড ফাইলগুলি বের করেছি ,

tar /usr/local -xzf /usr/save/node-v4.2.1-linux-x64.tar.gz

তবে এটি কাজ করে না। এই দুটি আদেশের মধ্যে পার্থক্য বুঝতে কেউ আমাকে ব্যাখ্যা করতে বা সহায়তা করতে পারেন?

কমান্ড 1 আরও 2 টি কমান্ড কি করছে তার চেয়ে বেশি কি?


1
আপনি ইনস্টল করতে পারেন jodejsমাধ্যমে aptকমান্ড প্রয়োগ করুন: sudo apt install nodejs nodejs-legacy
pa4080

উত্তর:


24

টারবাল ডিরেক্টরি কাঠামোটি এরকম:

$ tar tf node-v6.10.1-linux-x64.tar.xz | head
node-v6.10.1-linux-x64/
node-v6.10.1-linux-x64/bin/
node-v6.10.1-linux-x64/bin/npm
node-v6.10.1-linux-x64/bin/node
node-v6.10.1-linux-x64/share/
node-v6.10.1-linux-x64/share/man/
node-v6.10.1-linux-x64/share/man/man1/
node-v6.10.1-linux-x64/share/man/man1/node.1
node-v6.10.1-linux-x64/share/systemtap/
node-v6.10.1-linux-x64/share/systemtap/tapset/

আপনি যখন অন্য কোনও বিকল্প ছাড়াই এই সংরক্ষণাগারটি বের করেন /usr/local, আপনি এটি পান:

/usr/local/node-v6.10.1-linux-x64/
/usr/local/node-v6.10.1-linux-x64/bin/
/usr/local/node-v6.10.1-linux-x64/bin/npm
/usr/local/node-v6.10.1-linux-x64/bin/node
/usr/local/node-v6.10.1-linux-x64/share/
/usr/local/node-v6.10.1-linux-x64/share/man/
/usr/local/node-v6.10.1-linux-x64/share/man/man1/
/usr/local/node-v6.10.1-linux-x64/share/man/man1/node.1
/usr/local/node-v6.10.1-linux-x64/share/systemtap/
/usr/local/node-v6.10.1-linux-x64/share/systemtap/tapset/

সুতরাং, একটি নতুন ডিরেক্টরি তৈরি করা হয়েছে /usr/local, এবং ফাইলগুলি সেখানে ফেলে দেওয়া হবে।

যাইহোক, সঙ্গে --strip-components=1, বের করা পথ থেকে একটি ডিরেক্টরী উপাদান মুছে ফেলা হবে, তাই node-v6.10.1-linux-x64/bin/হয়ে bin/এবং node-v6.10.1-linux-x64/bin/npmহয়ে bin/npm:

/usr/local/
/usr/local/bin/
/usr/local/bin/npm
/usr/local/bin/node
/usr/local/share/
/usr/local/share/man/
/usr/local/share/man/man1/
/usr/local/share/man/man1/node.1
/usr/local/share/systemtap/
/usr/local/share/systemtap/tapset/

আর /usr/local/binইতিমধ্যে রয়েছে PATH, তাই আপনি অন্য কিছু চালানো না প্রয়োজন হবে না npmএবং node


14

এটি নোডজেএস ইনস্টল করার দুর্দান্ত (এখনও বিরক্তিকর) উপায়।

আপনি যদি tar tf /usr/save/node-v4.2.1-linux-x64.tar.gzফাইলটিতে চালনা করেন তবে আপনি এরকম কিছু দেখতে পাবেন:

node-v4.2.1-linux-x64/
node-v4.2.1-linux-x64/bin/
node-v4.2.1-linux-x64/bin/npm
node-v4.2.1-linux-x64/bin/node
node-v4.2.1-linux-x64/share/
node-v4.2.1-linux-x64/share/man/
node-v4.2.1-linux-x64/share/man/man1/

মূলত, এর অর্থ হ'ল আপনি যখন এই টার সংরক্ষণাগারটি নিষ্কাশন করবেন তখন এটি এর node-v4.2.1-linux-x64ভিতরে থাকা এই সমস্ত সাবফোল্ডার (এবং নোড ইনস্টলেশন) এর সাথে ডাকা একটি ফোল্ডারে বের করবে। আসলে, আপনি আরও ভাল ধারণা পেতে এই নিষ্কাশন চেষ্টা করতে পারেন:

mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz

আপনি যদি চালনা করেন তবে আপনি lsএকটি node-v4.2.1-linux-x64ফোল্ডার দেখতে পাবেন ।

এখন, --strip-components 1নিষ্কাশন প্রক্রিয়াটি আকর্ষণীয় কিছু করে। থেকে man tar:

 --strip-components=NUMBER
       strip NUMBER leading components from file names on extraction

মূলত, এর অর্থ হ'ল যখন tarআপনার সংরক্ষণাগারটি নিষ্কাশন করতে যাচ্ছে, এটি node-v4.2.1-linux-x64ফোল্ডারটি নেই বলে ভান করতে চলেছে । পরিবর্তে, এটি নিষ্কাশন করতে চলেছে bin/, share/এবং অন্যান্য সমস্ত ফোল্ডার সরাসরি।

আসলে, আপনি এটি চেষ্টা করতে পারেন:

mkdir /tmp/node
cd /tmp/node
tar xvf /usr/save/node-v4.2.1-linux-x64.tar.gz --strip-components=1

আপনি যদি চালনা করেন তবে lsদেখবেন আর কোনও node-v4.2.1-linux-x64ফোল্ডার নেই no এটা শুধু bin/, include/, lib/, এবং share/(সমস্ত কাকতালীয়ভাবে ফোল্ডার /usr/local/)।

আপনার দ্বিতীয় কমান্ডটি কাজ করবে না কারণ এটি সবেমাত্র node-v4.2.1-linux-x64ফোল্ডারটি বের করে ফেলতে পারে /usr/local(এটি এমনকি যদি কিছুটা চালিয়ে যায়)। আপনি যদি চালনা করেন তবে আপনি ls /usr/localএই ফোল্ডারটি প্রায় ঝুলন্ত দেখতে পাবেন। এটি অকেজো, এর সাথে মুছে ফেলতে নির্দ্বিধায় rm। কেন এটি অকেজো, পড়া চালিয়ে যান ...


এখন আমরা কীভাবে টার্ম কমান্ডটি কাজ করে তা ব্যাখ্যা করেছি, আমরা কীভাবে এটি ইনস্টল হবে তা ব্যাখ্যা করতে পারি।

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

এখন, সাবধানতা (এবং কেন এটি বিরক্তিকর) তা হচ্ছে যা ঘটছে aptতা দেখবে বা বুঝতে পারবে না বা বুঝতে পারবে না। আপনি এটির মাধ্যমে sudo apt upgradeবা অনুরূপ আপডেট করতে পারবেন না । আপনার নিজের হাতে পুরানো নোডেজেএস ইনস্টলটি পরিষ্কার করতে হবে এবং আপনি যদি কখনও আপগ্রেড করতে চান তবে নতুনটি স্থাপন করতে হবে।

আমি আপনাকে sudo apt install nodejs-legacyপরিবর্তে চালানোর পরামর্শ দিচ্ছি । কম ব্যথা হয় এবং এটি স্বয়ংক্রিয়ভাবে আপনার জন্য আপডেট হয়।

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