web-dev-qa-db-ja.com

npmを最新バージョンに更新するにはどうすればよいですか?

設定しているVagrantボックスのnpmに問題があります。 npmバージョンがやや古いことに気づいたので、最新リリースの問題を確認したかったのです。

npm install -g npmを使用してnpmを更新できるはずですが、コマンドは使用中のnpmに影響を与えないことを理解しています:

vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ Sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10

また、nnodeJSを最新バージョンに更新するにはどうすればよいですか? )を使用して更新しようとしましたが、npmnodeにも影響しません:

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$
vagrant@box:~$ Sudo npm install -g n
/usr/bin/n -> /usr/lib/node_modules/n/bin/n
[email protected] /usr/lib/node_modules/n
vagrant@box:~$ Sudo n stable

     install : v0.10.33
       mkdir : /usr/local/n/versions/0.10.33
       fetch : http://nodejs.org/dist/v0.10.33/node-v0.10.33-linux-x64.tar.gz
   installed : v0.10.33

vagrant@box:~$ node -v
v0.10.25
vagrant@box:~$ npm -v
1.3.10

Npmを最新バージョンに更新するにはどうすればよいですか?

124
Der Hochstapler

私はまだ理解していませんなぜですが、npm install -g npm2回を実行しなければならないので、効果:

vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ Sudo npm install -g npm
npm http GET https://registry.npmjs.org/npm
npm http 200 https://registry.npmjs.org/npm
npm http GET https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
npm http 200 https://registry.npmjs.org/npm/-/npm-2.1.12.tgz
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
vagrant@box:~$ npm -v
1.3.10
vagrant@box:~$ Sudo npm install -g npm
/usr/bin/npm -> /usr/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/lib/node_modules/npm
vagrant@box:~$ npm -v
2.1.12
139
Der Hochstapler

最初にnpm install -g npmを実行すると、シェル(Bash)はパスでnpmを検索し、システムパッケージによってインストールされた/usr/bin/npmを見つけ、それを使用してnpmの新しいバージョンをインストールします。新しいバージョンは/usr/local/bin/npmにインストールされます。

これで、パスには/usr/local/bin/の前に/usr/bin/があるはずなので、/usr/local/bin/で更新されたバージョンを取得すると思いますか?違う。

Bashは、最初に検索した後に実行可能パスをCACHEするため、2回目にnpmと言ったとき、/usr/bin/npmとして最初に見つかったキャッシュバージョンを使用しています。

Bashにこのキャッシュをクリアしてパスを再度調べるように指示するには、hash -rを実行する必要があります。

npmをインストールしてこれを実行した後、シェルはnpmの新しいバージョンを問題なく取得しました。

ありがとう

45
Asfand Qazi

Npm自体、PPA、または手動でnodejsを更新できます。

npm

現在のバージョンを確認してください:

node -v

以下はキャッシュをクリアします。

Sudo npm cache clean -f

インストールn

Sudo npm install -g n

次のように特定のバージョンをインストールするように指示できます。

Sudo n 0.8.11

または、最新の安定バージョンをインストールするように指示します。両方とも時間がかかる場合があります。

Sudo n stable

実際にアップグレードされたかどうかを確認するには、次を実行します。

node -v

PPA

他のオプションは、 PPA by chris-lea ;でインストールすることです。

Sudo add-apt-repository ppa:chris-lea/node.js  
Sudo apt-get update  
Sudo apt-get install nodejs

このPPAは、次のディストリビューションをサポートしています:Utopic(14.10)、Trusty(14.04)、Saucy(13.10)、Raring(13.04)、Quantal(12.10)、Precise(12.04)、Oneiric(11.10)、Natty(11.04)、Lucid(10.04) )。

手動で

常に手動で更新することができます ダウンロード 最新バージョンをインストールし、自分でインストールしてください!


参照

38
blade19899

1つのコマンドでNPMを最新バージョンに更新する

Npmのバージョンをアップグレードまたは更新するには、ターミナルに入力するだけです:

Sudo npm install npm@latest -g

NPMドキュメンテーション のフッターで述べたように

ほとんどの場合、globalコマンドでアップグレードすることはできません。しかし、私のために働いたのは、すべてのシステムのノードモジュールのソースからパッケージをアップグレードすることです:

npmがインストールされている場所を見つけて、そのフォルダーに移動します

# Below command shows the destination (remove sed pipe to see the full path of npm-cli)
whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{19\}$//'

# Go in there and install it manually. In my case it was the folder below... 
# NOTE: on mac its in /usr/local/lib
cd /usr/lib
Sudo npm install npm@latest

すべての人(特に怠け者)の強力なワンライナーを見よ

cd `whereis npm | cut -c 6- | xargs readlink -f | sed 's/.\{18\}$//'`; cd ..; Sudo npm install npm@latest
12
Tom Siwik

npmをアップグレードするには、nodejsnpmを含む最新バージョンに更新する必要があります

Debian stretchとjessieでは、次のスクリプトを使用します。

#install prerequisites
apt-get install apt-transport-https curl git lsb-release -y

#Install NodeJS from external repositories
DISTRO=$(lsb_release -c -s)
if [ "$DISTRO" == "stretch" ]
then
  DISTRO="jessie"
fi

if curl -f "https://deb.nodesource.com/node_7.x/dists/$DISTRO/Release" >/dev/null
then
  curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -
  echo "deb https://deb.nodesource.com/node_7.x $DISTRO main" > /etc/apt/sources.list.d/nodesource.list
  echo "deb-src https://deb.nodesource.com/node_7.x $DISTRO main" >> /etc/apt/sources.list.d/nodesource.list
  apt-get update
  # comment out the following line, if you installed nodejs 7 already (check with `apt-cache policy nodejs`)
  apt-get remove nodejs nodejs-legacy npm
  apt-get install nodejs -y
else
  echo -e "Your distribution is not supported by NodeJS. \nYou have to install a recent NodeJS version (>=4) manually. "
fi

Ubuntuでは、このスクリプトを https://deb.nodesource.com から使用できます。

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

まずソースを参照してください https://github.com/nodesource/distributions/blob/master/deb/setup_7.x

1
rubo77

どんなトリックでも、Gitを使用しないでください。Composer terminalで実行することをお勧めします。確実に動作します。 npm install npm -gが私のためにしました。

1
Gildas Niyigena

私は問題に直面していました。私の現在のnpmバージョンは3.3.12でしたが、私はSudo npm install npm -gSudo npm update npm -gを試しました..何も機能しませんでした..私はnpm --versionの間、私は常に3.3.12を取得します。 Ubuntu 15.04でディレクトリを検索し、異なるディレクトリにnpmの2つのバージョンが見つかりました。

  • /usr/local/lib/node_modules/npmのv3.3.12
  • /usr/lib/node_modules/npmのv3.6

したがって、古いnpmディレクトリにいる間にmv npm npm_3312で3.3.12のコピーを作成しました。次に、「/ usr/lib/node_modules」ディレクトリにいる間にSudo cp -r npm /usr/local/lib/node_modules/を実行しました。npm --versionを作成し、3.6.0を取得しました

:D

0
Ariful Haque

そこに準備ができているものを再インストールする理由はありません。パッケージマネージャーに組み込まれているpdate -gを使用して、自身を更新します。

$ npm -v
2.15.1
$ Sudo npm update -g npm
/usr/local/bin/npm -> /usr/local/lib/node_modules/npm/bin/npm-cli.js
[email protected] /usr/local/lib/node_modules/npm
$ npm -v
3.10.9

グローバルフラグ-gがパッケージの前にあることを確認してください。過去にnpmがパッケージリストの後にフラグを登録しないという問題がありました。

0
SmujMaiku

nodejs v0.12.7へのアップグレード

 # 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

nodesource.comからのソース

0
Rémi B.