Brewを使用してNodeの最新バージョンをインストールする方法


154

現在、NodeJの最新バージョンは0.4.1です。

このコマンドはbrew install node現在0.2.6をインストールします-これは理想的ではありません。0.4.1が欲しい

私は醸造のためのコマンドのこのリストを見て、試しましたbrew install --HEAD node

しかし、これはノード0.5-preをインストールします。

brewが正しいバージョンをインストールしていないのはなぜですか、どうすれば正しいバージョンを取得するように強制できますか?

この段階では、srcをダウンロードして手動でインストールする方が実際には簡単なようです。しかし、私はブリューで何が起こっているのか知りたいのですが。


気になります。Homebrewを介したインストールとnodejs.orgからダウンロードしたパッケージからのインストールの違いは何ですか?
yihangho 2013年

回答:


126

brew update最初に実行しましたか?そうしないと、Homebrewは数式を更新できません。また、数式を更新しないと、最新バージョンのソフトウェアをインストールする方法がわかりません。


2
そうですね、「brew update node」を試してみましたが、あなたの言う通りです。docoが「brew update」はbrewソフトウェアをアップデートすると言っていたので、私には起こりませんでした-違いはないようです。しかし、それは 'formulea'について言及しています。これは、基本的には 'ソフトウェアバージョンのライブラリ'であるものを表す(ばかげた)愚かな言葉です。「brew info node」を実行して、インストールするバージョンを確認できます。それは0.4.0に設定されているので、とにかくsrcからインストールすることになりましたが、これは正しいです。ありがとうございました。
PandaWood 2011

「brewソフトウェアを更新する」と表示されている場合、brewがインストールしたソフトウェアを更新するという意味ではありません。つまり、brew自体と、Formulaeのライブラリを更新するという意味です。
リリーバラード

301

以下のコマンドをこの順序で実行します。

brew update
brew doctor
brew upgrade node

これでノードの更新バージョンがインストールされました。おそらくリンクされていません。そうでない場合は、次のように入力します:brew link nodeまたはbrew link --overwrite node


1
取得し続ける/usr/local/share/doc/node is not writable.
Saba Ahang

@SabaAhang、参照:Homebrewの/ usr / localに対する権限を修正。; gist.github.com/rpavlik/768518
AnneTheAgile

3
エラー:そのような樽はありません:/ usr / local / Cellar / node
Hos Mercury

ノードケグがリンク解除されたため、これでNPMの障害が修正されました(「Buffer.allocは関数ではありません」)。古いファイルを強制的にリンク/上書きするために必要です。
デイブ

2
brew link --overwrite nodeそれは本当に重要です!感謝
hanzichi

136

brewを介してノードをインストールまたはアップグレードした後、私はこの問題に正確に遭遇しました。nodeコマンドは機能しましたが、npmコマンドは機能しませんでした。

これらのコマンドを使用して修正しました。

brew uninstall node
brew update
brew upgrade
brew cleanup
brew install node
sudo chown -R $(whoami) /usr/local
brew link --overwrite node
brew postinstall node

私は試行錯誤の後でこのソリューションをつなぎました...


ありがとうございました!まったく同じ問題があり、これで解決しました。
elsurudo、2015年

7
sudo brew postinstall nodebrewがrootによって所有されていない限り、エラーがスローされます(非推奨)。あなたがすでにそうしたなら、私はそれが必要であるべきだとは思いませんsudo chown -R $(whoami) /usr/local。実行できるはずbrew postinstall nodeです。
Sam Fen

2
@SamFenの権利。sudo必要ありません。このコマンドのリストを実行する前に、最初に承認された回答を実行しました。その後、私は走りましたnode -v、そして、すべては今順調です。
6754534367

1
sudo chown -R $(whoami)/ usr / localの代わりにsudo chown -R $(whoami)$(brew --prefix)/ *を使用する
Troy DC Thompson

1
これでうまくいきました。@TroyDCThompsonが推奨sudo chown -R $(whoami) $(brew --prefix)/*することを実行しましたOperation not permitted
thurzo101


13

また、新しいノードバージョンをインストールした後、現在のノードバージョンを非アクティブ化してみてください。それはわたしを助ける。

nvm deactivate

これは$ PATHから/Users/user_name/.nvm/*/binが削除されます

そして、そのノードが更新された後

node --version
v10.9.0

9

私は0.4から0.8.18に更新するためにbrew link --overwrite node後にしなければならなかったbrew install node


エラー:そのような樽はありません:/ usr / local / Cellar / node
Hos Mercury

7

「n」ノードの非常にシンプルなパッケージマネージャを使用してみてください。

> npm install -g n

「n」をインストールしたら。次のようにして、最新のノードを取得できます。

> n latest

Ubuntu 16.0xとMacOS 10.12(Sierra)でうまく使用しました

リファレンス:https : //github.com/tj/n


7

現在のノードを経由Homebrewでインストールした場合は、これらのコマンドを使用してください。

brew update
brew upgrade node

ノードのバージョンを確認する

node -v


3

このソリューションをHomebrew 0.9.5で使用しただけで、ノードの最新の安定したバージョンにアップグレードするための迅速なソリューションのように見えました。

brew update

これにより最新バージョンがインストールされます

brew install node

これを見つけるには、現在のバージョンのノードの使用、ノード-vのリンクを解除します

brew unlink node012

これは、ノードの最新バージョンに変わります。

brew link node

注:この解決策は、私がこのエラーを受け取った結果として機能しました。

エラー:そのような樽はありません:/ usr / local / Cellar / node


2

Mac OSX Sierraでこれを行いました。Node 6.1をインストールしましたが、PuppetterはNode 6.4を必要としました。これは私がやったことです:

brew upgrade node
brew unlink node
brew link --overwrite node@8
echo 'export PATH="/usr/local/opt/node@8/bin:$PATH"' >> ~/.bash_profile

そして、新しいターミナルウィンドウを開いて実行します。

node -v
v8.11.2

--overwriteは、node6とnode8の間で競合するファイルを上書きするために必要です。




0

brew依存関係を削除してもかまわない場合は、nvmをお勧めします。他のことを試す必要がないため、他のバージョン管理ソリューションよりも実際にはお勧めできません。作業しているプロジェクトに応じて、バージョンを瞬時に切り替える機能があることは非常に価値があります。


0

古いskoolを実行するだけ-https : //nodejs.org/en/download/current/ そこから、現在のバージョンまたはLTSバージョンを取得できます

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.