176

Homebrew経由でnode.jsをインストールしようとしています。残念ながら、次のエラーが発生します。

➜  ~  brew install node
==> Downloading http://nodejs.org/dist/v0.8.10/node-v0.8.10.tar.gz
######################################################################## 100.0%
==> ./configure --prefix=/usr/local/Cellar/node/0.8.10
==> make install
==> Caveats
Homebrew installed npm.
We recommend prepending the following path to your PATH environment
variable to have npm-installed binaries picked up:
  /usr/local/share/npm/bin
Warning: Could not link node. Unlinking...
Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link node'
==> Summary
/usr/local/Cellar/node/0.8.10: 856 files, 13M, built in 103 seconds

だから私は手動でノードをリンクしようとします...

➜  ~  brew link node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.8.10/lib/node_modules/npm/scripts/relocate.sh
Target /usr/local/lib/node_modules/npm/scripts/relocate.sh already exists. You may need to delete it.
To force the link and delete this file, do:
  brew link -f formula_name

To list all files that would be deleted:
  brew link -n formula_name

運が悪いので、ノードを強制的にリンクしてみます...

➜  ~  brew link -f node
Linking /usr/local/Cellar/node/0.8.10... Warning: Could not link node. Unlinking...

Error: Permission denied - /usr/local/lib/dtrace/node.d

私はdtraceに精通しておらず、パーミッションを台無しにするのが怖いので、sudoを試してみました。

➜ ~ git:(master) sudo brew link -f node
Password:
Error: Cowardly refusing to `sudo brew link'
You can use brew with sudo, but only if the brew executable is owned by root.
However, this is both not recommended and completely unsupported so do so at
your own risk.

経由でノードをアンインストールbrew uninstall nodeして、インストールを再試行しましたが、うまくいきませんでした。

4

21 に答える 21

165

Mac OSXMavericksを実行しています。ノード0.10.25をインストールしようとしましたが、一番上の答えがうまくいきませんでした。

natevwはそう言いますrm -rf /usr/local/lib/node_modules/npmが、の権限が次のようになっている場合/usr/local/lib/node_modules

drwxr-xr-x   3 root      admin   102 Feb  2 20:45 node_modules

その場合、brewはそのディレクトリにnpmシンボリックリンクを作成できなくなります。これが私の解決策です:

ステップ1:自作を更新する

$ brew update

ステップ2:システム上のあらゆる場所でnode/npmを削除します

過去にnode/npmをインストールした方法によっては、これらのコマンドの一部は必要ありません。

$ brew uninstall npm
$ brew uninstall node
$ npm uninstall npm -g
$ sudo rm -rf /usr/local/lib/node_modules

注:実行して見つけた漂遊ノードファイルがありましたbrew -v link node(これにより、brewが不満を言っていたリンクエラーの詳細な出力が得られました)。次のことが必要になる場合があります。

$ sudo rm -rf /usr/local/include/node
$ sudo rm -rf /usr/local/lib/node

ステップ3:新しいターミナルを開き、ノードをインストールします

$ brew install node
于 2014-02-03T06:07:20.987 に答える
144

node.jsのhomebrewパッケージに再びnpmが含まれるようになったため、スタンドアロンバージョンを最初に削除するというhomebrewパッケージのメッセージを見逃したときにこれが発生しました。

私のように、npm uninstall npm -g最初に知る前にアップグレードを試みてnode / npmをすでに壊していると仮定すると、rm -rf /usr/local/lib/node_modules/npm次にできますbrew link node。これにより、スタンドアロンの自己ホスト型npmパッケージ(brewがインストールしたいものではなく)が削除され、brewがバンドルされたパッケージをCellarからシンボリックリンクできるようになります。

于 2012-10-05T17:54:29.700 に答える
43
sudo chown -R $(whoami) /usr/local 

醸造サイトのトラブルシューティングで述べたようにうまくいくでしょう

https://github.com/Homebrew/homebrew/wiki/troubleshooting

于 2014-10-09T09:27:47.110 に答える
38

別の方法を使用して古いバージョンのnode.jsをすでにインストールしている可能性があるため、brewの邪魔になるファイルを手動で削除する必要があります。

brew link -n nodeこれらの競合するファイルとディレクトリを手動で削除してから、再試行してくださいbrew link node

于 2012-09-26T17:31:51.363 に答える
33

私は少し遅れています、私のために働いたのはこれでした:

* npm uninstall npm -g

* brew uninstall node

* brew install node

* sudo rm -rf /usr/local/lib/dtrace/node.d

* brew link node (caused error with permissions)

* sudo chmod 777 /usr/local/lib/dtrace/node.d

* brew link node

このシーケンスの後、すべてが成功しました

于 2013-11-20T23:43:26.180 に答える
21

これを試して。別のリファレンスから取得し、私のために働いた。

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
于 2016-05-08T17:24:54.413 に答える
10

古いMacから新しいMacにすべてのアプリケーションを転送した後、同じ問題が発生しました。

私は実行することによって解決策を見つけましたbrew doctor

警告:壊れたシンボリックリンクが見つかりました。でそれらを削除しますbrew prune

実行した後brew prune、Homebrewはついに軌道に戻りました:)

于 2013-10-09T10:10:25.287 に答える
4

私の問題の解決策は少し異なりました。brewがシンボリックリンクを作成したいディレクトリは、現在のユーザーが所有していませんでした。

ls -la /usr/local/bin/lib/node | grep node降伏:

drwxr-xr-x    3 24561  wheel   102 May  4  2012 node
drwxr-xr-x    7 24561  wheel   238 Sep 18 16:37 node_modules

私にとって、以下はそれを修正しました:

sudo chown $(users) /usr/local/bin/lib/node_modules
sudo chown $(users) /usr/local/bin/lib/node

ps。$(users)あなたのユーザー名に拡張され、怠惰なコピーパスターを助けるために私の邪魔にならないようになります;)

于 2013-09-18T14:50:36.797 に答える
4

thx@suweller。

私は問題を修正しました:

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Permission denied - /usr/local/lib/node_modules/npm

私はsuwellerと同じ問題を抱えていました:

➜  bin git:(master) ✗ ls -la /usr/local/lib/ | grep node
drwxr-xr-x   3 24561  wheel   102 11 Okt  2012 node
drwxr-xr-x   3 24561  wheel   102 27 Jan 11:32 node_modules

だから私はこの問題を次のように修正しました:

➜  bin git:(master) ✗ sudo chown $(users) /usr/local/lib/node_modules
➜  bin git:(master) ✗ sudo chown $(users) /usr/local/lib/node

この問題を修正した後、別の問題が発生しました。

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d
Target /usr/local/lib/dtrace/node.d already exists. You may need to delete it.
To force the link and overwrite all other conflicting files, do:
  brew link --overwrite formula_name

To list all files that would be deleted:
  brew link --overwrite --dry-run formula_name

だから私はnode.dを削除しました:

➜  bin git:(master) ✗ sudo rm /usr/local/lib/dtrace/node.d

別の許可エラーが発生しました:

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... Warning: Could not link node. Unlinking...

Error: Could not symlink file: /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d
/usr/local/lib/dtrace is not writable. You should change its permissions.

そしてそれを修正しました:

➜  bin git:(master) ✗ sudo chown $(users) /usr/local/Cellar/node/0.10.25/lib/dtrace/node.d

そして最後にすべてがうまくいきました:

➜  bin git:(master) ✗ brew link node
Linking /usr/local/Cellar/node/0.10.25... 1225 symlinks created
于 2014-01-27T11:13:20.837 に答える
3

最終的な答え:そのディレクトリの所有者をあなたが誰であるかに変更します

sudo chown -R `whoami` /usr/local/include

これは、brewdoctorを実行している場合にもbrewによって推奨されます

于 2014-07-10T13:32:39.520 に答える
3

ノードに関するほとんどのbrewインストールの問題は、パーミッションエラー、または以前にノードをインストールしてからbrew経由でインストールしようとしたことが原因で発生します。最終的に私のために働いた解決策は次のとおりでした:

警告:これにより、nodejs(複数のバージョン)の使用がアンインストールされます。注意してください。

  1. brewを介してノードを削除します。

    brewアンインストールノード

  2. また、力を介して行いました:

    brewアンインストールノード--force

  3. スクリプトを使用するにはソース:ノードを削除します:

    curl -O https://raw.githubusercontent.com/DomT4/scripts/master/OSX_Node_Removal/terminatenode.sh

それで:

chmod +x /path/to/terminatenode.sh

それで:

./terminatenode.sh .
  1. 次に、必ず次のコマンドを実行してください。

    chown $ USER / usr / local

  2. 次に、brew updateを実行します(すべてが更新されるまでこれを実行し続けます):

    醸造の更新

  3. ブリューアップをクリーンアップして更新を再度実行し(冗長になる可能性があります)、ドクターを実行して問題がないことを確認します。

    醸造クリーンアップ; 醸造の更新; 醸造医

  4. そして最後に、brew(verbose)を介してノードをインストールします。

    brew install -v node

于 2014-08-25T04:56:27.770 に答える
2

インストール中にノードと/usr/ local/includeをリンクできないというエラーが発生しましたが書き込み可能ではありません

以下の解決策は私のために働いた:- 最初にインクルードフォルダを作成します、これにはsudo権限が必要であることに注意してください

cd /usr/local

sudo mkdir include

sudo chown -R $(whoami) $(brew --prefix)/*

brew link node
于 2018-07-31T08:38:41.577 に答える
1

また、NPMを台無しにし、これらのHomebrewバージョン間でパッケージをインストールしましたが、ノードのリンクを解除/リンクおよびアンインストール/インストールした回数に関係なく、それでも機能しませんでした。

結局のところ、パスからNPMを削除する必要があります。そうしないと、HomebrewはNPMをインストールしません:https ://github.com/mxcl/homebrew/blob/master/Library/Formula/node.rb#L117

これが同じ問題を抱えている人を助け、その時間を節約することを願っています...私は問題を探すのに費やさなければなりませんでした...

于 2013-04-01T16:45:13.957 に答える
1

Finderで、このファイルを削除します。

/usr/local/lib/dtrace/node.d

ターミナルで:

$ brew link --overwrite --dry-run node

それから:

$ brew link node
于 2017-12-28T14:18:31.347 に答える
1

私はすべての方法を試しましたが、どれもうまくいきません。最も簡単な方法は、https://nodejs.org/en/download/からノードを再インストールすることです。

をダウンロードしpkgてインストールするだけです。今、私は仕事npmをしていnodeます。

于 2020-01-10T21:45:41.030 に答える
0

良いアイデアかどうかはわかりません。他のすべてのソリューションを試しても成功しなかった後、/ usr / local / lib / dtraceの名前を変更し、ノードをリンクして、ディレクトリの名前を再度変更しました。その後、ノードは期待どおりに機能しました。

于 2013-09-12T20:05:18.407 に答える
0

私はしばらくこれに苦労していました。(私にとって「npmuninstall npm-g」は何もしませんでした)

私はたくさんのことを試しました:

npm uninstall npm -g
brew uninstall node
brew install node

私はまだいくつかの問題を抱えていて、ノードファイルをリンクしようとするとエラーが発生していました

最後に私はこれを試しました

brew link --overwrite node

それはそれを修正したようです。(競合するすべてのファイルを上書きし、ノードとnpmもリンクします)

お役に立てれば

于 2013-11-22T22:52:24.400 に答える
0

brewを完全にアンインストールしてやり直しましたが、同じ問題が再び見つかりました。

Brewは、他のインストール方法で通常ファイルがコピーされるシステムに必要なバイナリをシンボリックリンクすることで機能しているように見えます。

ここで既存のノードライブラリのセットを見つけました:

/usr/local/include/node

頭を悩ませた後、この古いバージョンに対してその日にノードをインストールしたことを思い出しましたが、それはbrewを介したものではありませんでした。

このフォルダー全体を手動で削除し、npmを正常にリンクしました。

これは、brewuninstallまたはuninstallbrew自体を使用しても効果がなかった理由を説明します。

最高ランクの答えはこれを非常に単純に言いますが、なぜそれが必要なのかについての私の観察を追加したいと思いました。

他のbrewパッケージに関する多くの問題は、パッケージの古い非brewインスタンスが邪魔になっていることが原因である可能性があると推測しています。

于 2014-02-15T03:29:01.293 に答える
0

シンボリックリンクノードに頭を悩ませていましたが、何も機能していないようでした...しかし、最終的に機能したのは、適切な権限を設定することです。この'sudochown -R $(whoami)/ usr/local'が私のために仕事をしてくれました。

于 2015-09-11T04:02:04.757 に答える
0

次のコマンドを使用して、ElCapitanでこれを修正しました。正直なところ、それが何をするのかわかりませんが、問題が解決したので共有したいと思いました。

brew link --overwrite node
于 2016-02-06T00:47:02.090 に答える
-5

npmパッケージを手動で削除する必要があります。

最初のリンク解除ノード:brew link -n node

npmフォルダーを削除します。rm -R /usr/local/Cellar/node/0.8.10/lib/node_modules/npm

再度リンク:brew link node

npmの新しい場所へのソフトリンクがあります

于 2012-09-28T14:48:30.183 に答える