ডিস্ট্রিবিউশন নোডেজ প্যাকেজ (উবুন্টু) এর সাথে হোম ডিরেক্টরিতে এনপিএম ইনস্টল করুন


94

আমি বিতরণ নোড.জেএস প্যাকেজগুলি (অথবা আরও সাম্প্রতিক প্রকাশের জন্য ক্রিস-লেপা পিপিএ ) ব্যবহার করতে চাই তবে আমার হোম ডিরেক্টরিতে এনপিএম ইনস্টল করব।

এটি পিক মনে হতে পারে তবে লিনাক্সের অধীনে পলিগ্লোট / গিথুব-বিকাশকারীদের জন্য ভাষা রানটাইম / লাইব্রেরি এনভায়রনমেন্ট সেটআপ করার জন্য এটি একটি দুর্দান্ত আইডোমেটিক উপায়: রানটাইমটির জন্য ডিস্ট্রো প্যাকেজ, প্রতি ব্যবহারকারী পরিবেশে তৃতীয় পক্ষের লাইব্রেরি (দেখুন ভার্চুয়ালেনভ, আরভিএম - আরভিএম আপনি চাইলে আপনার জন্য রুবিও তৈরি করবেন)। প্রয়োজনে আমি স্থানীয়ভাবে নোড তৈরি করব তবে এটি একটি পিআইটিএ যেহেতু নোড প্রচুর প্রকল্পের জন্য ঘটনাগত উন্নয়নের প্রয়োজন হয়ে উঠছে।


উত্তর:


203

এনপিএম ইতিমধ্যে আপনার প্রকল্পগুলিতে স্থানীয় প্যাকেজ ইনস্টল করবে তবে আমি এখনও আমার অপারেটিং সিস্টেমের ফাইলগুলি থেকে সিস্টেমকে দূরে রাখতে চাই। আমি এখানে নোডেজ প্যাকেজগুলিকে সংযুক্ত করার পরামর্শ দিচ্ছি:

ক্রিস-লিপা পিপিএর মাধ্যমে নোডেজ এবং এনপিএম ইনস্টল করুন। তারপরে নোড "গ্লোবাল" প্যাকেজগুলি ধরে রাখতে আমি আমার হোমডিরে একটি প্যাকেজ রুট সেট করেছি:

 $ NPM_PACKAGES="$HOME/.npm-packages"
 $ mkdir -p "$NPM_PACKAGES"

বিশ্বব্যাপী প্যাকেজ ইনস্টলের জন্য এই ডিরেক্টরিটি ব্যবহার করতে এনপিএম সেট করুন:

 $ echo "prefix = $NPM_PACKAGES" >> ~/.npmrc

আপনার .zshrc / .bashrc এ নিম্নলিখিতগুলি যুক্ত করে আপনার $ NPM_PACKAGES উপসর্গটিতে আদেশগুলি দেখতে আপনার পাঠ এবং মানপথটি কনফিগার করুন:

# NPM packages in homedir
NPM_PACKAGES="$HOME/.npm-packages"

# Tell our environment about user-installed node tools
PATH="$NPM_PACKAGES/bin:$PATH"
# Unset manpath so we can inherit from /etc/manpath via the `manpath` command
unset MANPATH  # delete if you already modified MANPATH elsewhere in your configuration
MANPATH="$NPM_PACKAGES/share/man:$(manpath)"

# Tell Node about these packages
NODE_PATH="$NPM_PACKAGES/lib/node_modules:$NODE_PATH"

এখন আপনি যখন এটি করবেন npm install -g, এনপিএম গ্রন্থাগারগুলিতে এর মধ্যে ইনস্টল করবে ~/.npm-packages/lib/node_modulesএবং এক্সিকিউটেবল সরঞ্জামগুলিতে লিঙ্ক করবে ~/.npm-packages/binযা আপনার মধ্যে রয়েছে PATH

npm install -gআপনি সাধারণত যেমনটি ব্যবহার করেন তেমন ব্যবহার করুন :

[justjake@marathon:~] $ npm install -g coffee-script
... (npm downloads stuff) ...
/home/justjake/.npm-packages/bin/coffee -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/coffee
/home/justjake/.npm-packages/bin/cake -> /home/justjake/.npm-packages/lib/node_modules/coffee-script/bin/cake
coffee-script@1.3.3 /home/justjake/.npm-packages/lib/node_modules/coffee-script

[justjake@marathon:~] $ which coffee
/home/justjake/.npm-packages/bin/coffee

4
আপনি যদি এমন একটি ভাগ করা সিস্টেমে থাকেন যেখানে nodeইনস্টল করা আছে তবে npmতা নেই তবে উপরের উত্তরের সেটআপটি অনুসরণ করুন এবং তারপরে নিজের হোম ডিরেক্টরিতে নিজেকে ইনস্টল npm_config_prefix=$NPM_PACKAGES curl -L https://npmjs.org/install.sh | shকরতে পারেন npm
টিম লুইস

4
উপসর্গটির সেটটি আমার জন্য এনপিএম ২.১০.১ তে কাজ করছে না তাই আমি দৌড় শেষ করেছিnpm config set prefix $NPM_PACKAGES
Calin

নিম্নলিখিত লিপিটি স্বয়ংক্রিয়ভাবে দাবি করেছে: github.com/glenpike/npm-g_nosudo
মাইক আর

আমি $HOME/.localউপসর্গের পরিবর্তে ব্যবহার করি । স্থানীয় ফাইলগুলি সংরক্ষণ করার জন্য এটি অন্যান্য সফ্টওয়্যার দ্বারা আজকাল একটি সাধারণ ব্যবহৃত ফোল্ডার।
বৈভব কে

4
আপনি ব্যবহার করুন: echo 'prefix = ${NPM_PACKAGES}' >> ~/.npmrc, পাথ হার্ডকোডেড নয় .npmrc, কিন্তু npm এনভায়রনমেন্ট ভেরিয়েবল থেকে এটা পড়তে হবে যখনই npm রান (নোট আমি পরিবর্তন "করতে 'আদেশ শেল প্রতিরোধ করার জন্য যে, executes পরিবর্তনশীল বিস্তৃত থেকে প্রতিধ্বনি, এবং আমি যোগ {}প্রায় পরিবর্তনশীল , যেহেতু এটি সিনট্যাক্সটি ব্যবহৃত হয়েছে .npmrcthis এই কাজটি করার জন্য, আমাকে .bashrcপড়তে হবে: মেক export NPM_PACKAGES="$HOME/.npm-packages"যোগ করা এটি exportএনপিএম এ উপলব্ধ করে Unre নিরবিচ্ছিন্ন, আমি মনে করি আপনাকে exportঅন্যান্য পরিবর্তনশীলগুলিতেও যুক্ত করতে হবে
ম্যাথিজ কুজিমন

31

জ্যাকের উত্তরটি ২০১২ সালে পোস্ট করা হয়েছিল এবং এটি কার্যকর হওয়ার সময় ক্রিস লির নোড.জেএস পিপিএ'র উল্লেখ করে যারা মার্চ ২০১৫ সাল থেকে আর আপডেট হয় না।

আমি আমার হোম ডিরেক্টরিতে নোড.জেএস এবং এনপিএম ইনস্টল করতে যে পদক্ষেপগুলি ব্যবহার করি তা এখানে:

এনভিএম দিয়ে নোড.জেএস ইনস্টল করুন ( sudoপ্রয়োজন নেই):

curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.33.2/install.sh | bash
source ~/.bashrc
nvm install 7
npm install -g npm  # update npm

এখন আপনি install -gছাড়া করতে পারেন sudoএবং সবকিছু goesুকে পড়ে~/.nvm/

অথবা এনভিএম ( অফিসিয়াল নির্দেশাবলী ) ছাড়াই নোড.জেএস ইনস্টল করুন :

নোড.জেএস ইনস্টল করুন

  • নোড.জেএস ভি 6 (মে এল 2017 হিসাবে বর্তমান এলটিএস):

    curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash -
    sudo apt-get install -y nodejs
    
  • নোড.জেএস ভি 7:

    curl -sL https://deb.nodesource.com/setup_7.x | sudo -E bash -
    sudo apt-get install -y nodejs
    

স্থানীয় একটিতে এনপিএমের ডিফল্ট ডিরেক্টরিটি পরিবর্তন করুন:

mkdir ~/.npm-global
npm config set prefix '~/.npm-global'
export PATH="$HOME/.npm-global/bin:$PATH"  # ← put this line in .bashrc
source ~/.bashrc  # if you only updated .bashrc

বিকল্পভাবে .npm-globalআপনার পছন্দের ডিরেক্টরি দ্বারা প্রতিস্থাপন করুন ।

এনপিএম আপডেট করুন এবং এটি আপনার $HOMEডিরেক্টরিতে ইনস্টল করা আছে তা পরীক্ষা করুন :

$ npm install npm -g
/home/<username>/.npm-global/bin/npm -> /home/<username>/.npm-global/lib/node_modules/npm/bin/npm-cli.js
/home/<username>/.npm-global/lib
└─┬ npm@3.10.6 
  ├─┬ glob@7.0.5 
  │ └── minimatch@3.0.2 
  ├── npm-user-validate@0.1.5 
  └── rimraf@2.5.3 

এখন আপনি আপনার সিস্টেম ফাইলগুলির সাথে ঝামেলা install -gছাড়াই sudoবা ছাড়াই করতে পারেন ।


২ য় বিকল্পটি এনপিএম ডক্স সাইটেও
ভাদিম

6

জাস্ট জ্যাক পোস্ট করা সমাধানটি দুর্দান্ত। তবে, এনএমপি> 1.4.10 এর সাথে বাগের কারণে এটি প্রত্যাশার মতো কাজ করতে পারে না। ( এটি এবং এটি দেখুন )

বাগটি সমাধান হওয়ার পরে, আপনি এই পদক্ষেপগুলি অনুসরণ করে এনএমপি 1.4.10 এ ডাউনগ্রেড করতে পারেন:

  1. আপনার $ HOM / .npmrc এ উপসর্গ রেখাটি মন্তব্য করুন
  2. চালান sudo npm install -g npm@1.4.10
  3. এনএমপি-র সঠিক সংস্করণ ইনস্টল করা আছে কিনা তা নিশ্চিত করুন ( npm --version)
  4. আপনার $ HOME / .npmrc এ প্রিফিক্স লাইনটি মন্তব্য করুন
  5. আপনার বাড়ির ফোল্ডারে আপনার বৈশ্বিক প্যাকেজগুলি ইনস্টল করতে এগিয়ে যান!

4

অজগরটি ইতিমধ্যে একটি দুর্দান্ত কাজ করেছে বলে virtualenvআমি ব্যবহার করি nodeenv। এর তুলনায় আপনি nvmএকই নোড সংস্করণের জন্য একাধিক পরিবেশ তৈরি করতে পারেন (উদাহরণস্বরূপ নোডের জন্য দুটি পরিবেশ 0.10কিন্তু বিভিন্ন প্যাকেজের প্যাকেজ সহ)।

ENVNAME=dev1

#  create an environment
python -m virtualenv ${ENVNAME}

# switch to the newly created env
source ${ENVNAME}/bin/activate

# install nodeenv
pip install nodeenv

# install system's node into virtualenv
nodeenv --node=system --python-virtualenv

রিডমিটি বেশ ভাল: https://github.com/ekalinin/nodeenv


3

আমি কিছু সময়ের জন্য @ জাস্ট-জ্যাক সলিউশন ব্যবহার করেছি এবং দেখতে পেয়েছি যে এনভিএম সেটআপ করা সহজ। এছাড়াও এটি অনেক শক্তিশালী সমাধান যা বিভিন্ন সংস্করণ ইনস্টল ও ব্যবহার করতে দেয় nodejs

উবুন্টু 14.04 বা 16.04 এ:

  1. বিল্ডিংয়ের জন্য পূর্বশর্ত প্যাকেজ ইনস্টল করুন nodejs:

    sudo apt-get update
    sudo apt-get install build-essential libssl-dev
    
  2. এনভিএম ইনস্টল করুন :

    curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
    

    যদি এনভিএম এর নতুন সংস্করণ পাওয়া যায় তবে আপনি এনভিএম সাইটে প্রকৃত ইনস্টলেশন কমান্ডটি পেতে পারেন ।

  3. nvmইনস্টলার এতে বুটস্ট্র্যাপ স্ক্রিপ্ট যুক্ত করবে ~/.bashrc, সুতরাং এটি চালানোর জন্য আপনার প্রয়োজন হয় টার্মিনালটি আবার খুলতে হবে, বা করতে হবে:

    source ~/.bashrc
    
  4. এখন আপনি nodejsআপনার পছন্দ মতো যে কোনও সংস্করণ ইনস্টল করতে পারেন, তাদের মধ্যে স্যুইচ করুন ইত্যাদি

    nvm ls-remoteউপলব্ধ nodejsসংস্করণ তালিকা করতে ব্যবহার করুন ।

    ইনস্টল করতে, উদাহরণস্বরূপ, nodejsv4.2.4 করুন:

    # install v4.2.4
    nvm install v4.2.4 
    # use nodejs v4.2.4 in the current terminal session
    nvm use v4.2.4
    # use v4.2.4 by default in new terminal session
    nvm alias default v4.2.4
    

2

জাস্ট জ্যাক এবং ব্যবহারকারীর দ্বারা প্রদত্ত উত্তরের প্রসারিত করতে 1533401: আমি শেয়ারিং হোস্টিং ব্যবহার করি এবং সিস্টেম ডিরেক্টরিতে নোড ইনস্টল করা হওয়ায় আমি ডাউনগ্রেড করতে অক্ষম। এই কারণেই আমি ডিরেক্টরিটি পরিবর্তন করেছি যেখানে এনপিএম গ্লোবাল স্ক্রিপ্টগুলি ইনস্টল করে যদি আমি এটি করতে চাই। একই নৌকায় যারা আছেন তাদের জন্য, আমি কাজগুলি পেয়েছি এমন একটি অন্য অস্থায়ী স্থিরতা:

npm install -g --prefix=$(npm config get prefix) <package>

ত্রুটিটি হ'ল এনপিএম আপনার প্রতি ব্যবহারকারী কনফিগারেশন ফাইলটি পড়বে না, তবে প্রতিবার কোনও গ্লোবাল স্ক্রিপ্ট ইনস্টল করার পরে এটি নির্দিষ্ট করে that এখানে পাওয়া গেছে



0

অন্যান্য উত্তরের পুরানো সমাধান রয়েছে: 2020 এর সমাধান NPM_CONFIG_PREFIXপরিবেশ পরিবর্তনশীল ব্যবহার করছে। ( বিশদ দেখুন )

উদাহরণ স্বরূপ,

$ NPM_CONFIG_PREFIX="$HOME/.npm-packages" npm install -g ios-sim
/Users/<name>/.npm-packages/bin/ios-sim -> /Users/<name>/.npm-packages/lib/node_modules/ios-sim/bin/ios-sim
+ ios-sim@9.0.0
added 108 packages from 68 contributors in 3.094s
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.