設定している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
また、n
( nodeJSを最新バージョンに更新するにはどうすればよいですか? )を使用して更新しようとしましたが、npm
もnode
にも影響しません:
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を最新バージョンに更新するにはどうすればよいですか?
私はまだ理解していませんなぜですが、npm install -g npm
2回を実行しなければならないので、効果:
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
最初に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
の新しいバージョンを問題なく取得しました。
ありがとう
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) )。
手動で:
常に手動で更新することができます ダウンロード 最新バージョンをインストールし、自分でインストールしてください!
参照:
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
npm
をアップグレードするには、nodejs
をnpm
を含む最新バージョンに更新する必要があります
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
どんなトリックでも、Git
を使用しないでください。Composer terminal
で実行することをお勧めします。確実に動作します。 npm install npm -g
が私のためにしました。
私は問題に直面していました。私の現在のnpmバージョンは3.3.12
でしたが、私はSudo npm install npm -g
、Sudo 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
そこに準備ができているものを再インストールする理由はありません。パッケージマネージャーに組み込まれている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がパッケージリストの後にフラグを登録しないという問題がありました。
# 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