homebrewを使用してノードをダウングレードまたは特定の以前のバージョンをインストールする方法を教えてください。


229

brewを使用しています。brewを使用してノードをインストールしました。以前のバージョンのノードを使用したい。

オンライン、私は命令を見つけるようなたとえば

cd /usr/local/Library/Formula
brew remove node --force
brew versions node
git checkout 83988e4 /usr/local/Library/Formula/node.rb
brew install node

私がこれに関して抱えている問題brewは、versionsサブコマンドがないように見えることです:

$ brew versions node
Error: Unknown command: versions
$ brew --version
0.9.5

私は醸造するのが初めてです。versionsサブコマンドを何らかの方法で有効にする必要がありますか?代わりに別のサブコマンドを使用する必要がありますか?私が試してみるべき完全に異なる方法はありますか?

OS X Yosemite(10.10.1)を実行しています。0.9.5を作成します。


インストールするnode.jsのバージョンはどれですか?
bmike

上司は10.32を教えてくれます。彼は0.10.32を意味すると思います。現在、0.12.0をインストールしています。
dave4420

:この日付で、読者はこの答えに行くべきstackoverflow.com/a/4158763/48136
ブライス

回答:


352

最近では、別のバージョンをインストールする場合はnode次のようにします。

目的のパッケージを最初に検索します。

brew search node

これにより、次の結果が得られる場合があります。

heroku/brew/heroku-node ✔
llnode
node@10
nodebrew
leafnode
node ✔
node@8
....

そして、目的のバージョンをインストールします。

brew install node@8

また、同時に複数のノードパッケージをインストールできますが、同時に使用できるようにすることはできません。したがって、最新/汎用nodeパッケージが既にインストールされている場合は、最初にそれをリンク解除する必要があります。

brew unlink node

そして、異なるバージョンをリンクできます:

brew link node@8

一部の古いノードバージョン(樽のみ)では、それらをオプション--forceとリンクする必要があり--overwriteます。

brew link --force --overwrite node@8

10
ここでのベストアンサー。
チョビー

3
リストされている他のバージョンのいずれかを正常にインストールする前に、ノードの既存のバージョンを「リンク解除」するように求められる場合があることに注意してください(上記の手順に従って)。「リンク解除」により、システムに物理的にインストールされている他のバージョンを残しますが、(リンク解除後に)インストールするバージョンはシステムの「デフォルト」バージョンになります。たとえば、をbrew unlink nodeインストールした場合は入力する必要がありますbrew install node。その後、あなたはそれを行うことができますbrew install homebrew/versions/node4-lts(この回答の指示に従ってリストされたバージョンとして表示されるはずです)。
-xmnboy

1
代わりにhomebrew/versions/node06homebrew/versions/node6-ltsです。また、行いますbrew link node6-lts
-akauppi

1
最新の醸造の変更を反映するように回答を更新しました。ありがとう!
パウェウゴイチッキ16

2
しかし、brewを使用してノード8.2.1のような特定のバージョンをインストールするにはどうすればよいですか?
ナダブB

39

手順を追って説明します。

現在のノードバージョンを確認するには

$ node --version

利用可能なノードバージョンを確認するには

$ brew search node

現在のバージョンからリンクを解除するには

$ brew unlink node

8などの任意のバージョンをインストールします

$ brew install node@8

インストール済みバージョンをリンクするには

$ brew link node@8

現在のノードバージョンを確認するには(再度)

$ node --version

ちょうど私が必要なもの
ブライアンコラビト

この問題を解決するには?brew link node @ 10警告:node @ 10は樽のみであり、-forceでリンクする必要がありますPATHでこのソフトウェアを最初に使用する必要がある場合、代わりに実行を検討してください:echo 'export PATH = "/ usr / local / opt / node @ 10 / bin:$ PATH "'>>〜/ .bash_profile
vikramvi

Mac OS 10.13.5では動作せず、エラーが発生しましたstackoverflow.com/questions/53043476/…–
vikramvi

15

homebrew / versionsへのこのPRおよびhomebrewへこのPRの時点で、関連する応答brew tap homebrew/versionsまたは*-ltsパッケージは機能しなくなりました。

正解は次のとおりです。

brew install node@<version>

どこ<version>0.100.124(最新のLTS版、これを書いている時点では)Node.jsのバージョン6をインストールするには、たとえばなど、:

brew install node@6

brew updateこれらの新しいバージョンの数式が使用できるように、これらのコマンドの前に実行する必要がある場合があります。別のバージョンのnode式がインストールされている場合は、brew unlink node最初に実行する必要もあります。


2
Mac OS 10.13.5で動作しませんでしたstackoverflow.com/questions/53043476/…–
vikramvi

11

brew versionsインストール後のある時点でインストールする必要がありますbrew

$ brew tap homebrew/boneyard

その後brew versions、指示どおりにコマンドを使用できます。


4
homebrew/boneyardは古く、2015年3月の時点でgithub.com/Homebrew/homebrew-versionsに置き換えられますbrew tap homebrew/versions
ヤクブホリー

12
homebrew/versions:あなたは、パッケージの名前をバージョン管理しまいますbrew search node => leafnode node node010 node04 node06 node08 nodebrew ...。そうbrew install node010続くbrew link --overwrite node010Node.JS.の0.10バージョンをインストールします
ヤクブホリー

3
また、あなたのbrew unlink node前に必要がありますbrew install node010
チャナネルブ

10

参考までに、以前に古いバージョンをインストールして実行していない場合brew cleanup(古いバージョンが削除される)、次のように切り替えることができますbrew switch node 5.7.0

ノードのすべてのインストールされたバージョンは、実行してリストすることができbrew info nodeたりls -l /usr/local/Cellar/node/

brewコマンドのチートシートを参照してください:http : //ricostacruz.com/cheatsheets/homebrew.html


2017/12時点で機能します!自作1.4.0-17-gc912d26
ジェイソンハリソン

5

Node専用に必要な場合は、を使用できますnvm。Nodeを頻繁に使用する場合、非常に便利です。


nvm docsによると、brewとnvmはサポートされているコンボではありません。ここでこれについてコメントしました。github.com/angular/angular-cli/issues/…これに関する戦争の話を聞きたいです。表面上は「サポートされていない」という事実にもかかわらず、これが機能しているようだからです。
JGFMK

3

自作なしでもできます。

ノードをアンインストールしてから手動でインストールできます。

現在実行中のバージョンをダウンロードする必要があります。リストはこちらです。

node-v {your-current-version-number} .tar.gzをダウンロードして展開し、コマンドラインに移動します。

cd node-v{your-current-version-number}
./configure
make
sudo make install

アンインストールする sudo make uninstall

次に、インストールするバージョンをダウンロードし、上記と同じ手順に従います。

このブログ投稿から


この回答を+1します。FWIW、これを機能させるには、解凍したbin/フォルダーをPATHにコピーするだけでした。
シコラ

さらに良いことに、そこから.pkgファイルをダウンロードし、ダブルクリックしてインストールすることができます。
ヘンリックN

3

ノードの任意のバージョンをインストールするためにhomebrewで問題が発生した場合は、https: //nodejs.org/dist/ [VERSION_YOU_NEED ]からOSXの.pkgファイルをダウンロードするだけです。これはノードを再インストールするのに役立つだけです


3

ここには多くの答えがあり、homebrew-versionsを使用すると言う他の場所もありますが、インストールできるNodeのバージョンについては非常に限られたオプションしか与えられません。

NVMを使用する方がはるかに簡単で、バージョン間を非常に簡単に切り替えることができます。

homebrew install nvm

次に、注意事項の指示に従います。そして、mkdir ~/.nvm2行を追加し.bash_profilesource .bash_profile

次にnvm install <version>、必要なすべてのバージョンで実行します。次にnvm use <version>切り替えます。


これは受け入れられた答えではありませんが、私のために働いた唯一の答えです。私は多くの時間を節約できただろうから、私はこれを最初に試してみたかったのに。
アレックス

1

0.12。*バージョンがあることをイメージしましょう。ノードの0.10バージョンをインストール(ダウングレード)するには、OSXでbrewをスローする必要があります。

$ sudo brew tap homebrew-versions
$ brew unlink node
$ brew install https://raw.githubusercontent.com/Homebrew/homebrew-versions/master/node010.rb
$ node -v

すべてのノードバージョンのリストはこちら


1

NodeJSの世界で好ましい方法は、ツールnを使用することです

  • インストール: npm install -g n
  • ノード8.8.4のインストール n 8.8.4
  • ローカルで使用可能なすべてのノードバージョンをリストし、いずれかを選択します。 n

に似ているように見えますがnvm、私はに問題がありnvmnそのまま使用できました。


0

https://nodejs.org/en/blog/release/

ここにアクセスして、必要なバージョンをインストールできます。

インストールする前にbrew unlink node、現在のバージョンのリンクを解除するために実行したい場合があります。


1
brewを使用する(他のいくつかの回答が説明する)またはノードをアンインストールしてから手動でインストールする(@ Terente-Ionut-Alexandruの回答が説明する)のではなく、この方法で行うことの利点は何ですか?
ジョンN

@JohnN brewバージョンは、現在のところ廃止されています。その代替案は非常に理解しやすいものではありません。また、正確なバージョンをインストールすることは、brewを通じて複雑です。
アナントシムランシン

@Paweł-Gościckiの回答(最高評価、140票)は非常に理解しやすいようで、まったく複雑ではありません。これは、最近のbrewと異なるバージョンの式での私の経験と一致します。私のポイントは、あなたの答えは、他の答えでまだ言われていないものに追加されないようだということです-Terenteが示唆したように、アンインストール+手動インストールではなく、リンク解除+手動インストールする理由がない限り?
ジョンN

@JohnNもちろん、わかりやすいです。ただし、brew検索が提供するオプションによって制限されます。例えば ノード4.4.6が正確に必要であるが、brewがnode @ 4オプションのみを提供する場合。したがって。
アナントシムランシン

質問には3つの適切な答えがあります。(1)brewを使用する、(2)nvmを使用する、(3)アンインストールして手動でインストールする。私があなたにやらせようとしているのは、あなたの答えがこれらの既存の答えに加わる理由を説明することです。既存の回答よりも、リンク解除+手動インストールが望ましいと思うのはなぜですか?具体的には、なぜTerenteの答えが示唆するように、*アンリンク* +手動インストールが*アンインストール* +手動インストールよりも優れていると感じるのですか?
ジョンN
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.