エラー:「リンクの抽出」ステップが正常に完了しませんでした


158

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インストールして、運が悪いのでインストールを再試行してみました。


automakeを取得できません。monbdbとnodeがhomebrewとリンクする
ピクセル67

回答:


136

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

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


9
ndaを削除したら、@ dainがコメントで述べたように、リンクを適切に機能させるために、ターミナルをいったん閉じてから再度開き、パスから削除する必要があります。
kflorence 2013

これでうまくいきました。私の場合、アップグレード中にElixirとErlangをリンクできませんでした。問題のディレクトリは私のユーザー名ではなく、「root」が所有しています。それらのディレクトリを削除して再インストールすることにしました。
Roebuckコーチ、2014年

ノードをリンクしようとすると、次のエラーメッセージが表示されます。何か案は?
SuperUberDuper 2015

1
npmをアップグレードしようとした後、1時間かけてこれを理解しようとしました。スタンドアロンバージョンが最初に削除されるまで、Brewはリンクを許可しませんでした。nateからの推奨事項がうまくいきました。
Brandon Clapp 2015

npmを再インストールするにはどうすればよいですか?それともbrewインストールノードでインストールされますか?
marciokoko

153

Mac OS X Mavericksを実行しています。ノード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:Homebrewを更新する

$ 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

1
ありがとう!これは私を大いに助け、私の問題を修正しました。+1
リッキー・ムチュレヒナー2014年

5
私のために働いた... node_modules( 's'で終わる)ディレクトリを削除する必要があったが...
songololo

1
これは受け入れられる答えになるはずです。ヨセミテにも関連。
Rog

1
これもうまくいきましたが、最終的にリンクを許可するには、このchownコマンドを実行する必要がありました。 sudo chown -R whoami/ usr / local Sauce
straubcreative 2017

1
Macのすべての場所でノードを削除するには、次の記事を実行しました:stackabuse.com/how-to-uninstall-node-js-from-mac-osx
ankitkpd

40
sudo chown -R $(whoami) /usr/local 

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

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


3
彼らがこれを推奨していることに驚いています。う、それは何をするほうがよいのではない:sudo chmod -R g+w /usr/local(、正直ものの両方の恐怖私)
getWeberForStackExchange

@getWeberForStackExchange私はあなたが言ったことを試してみましたが、それは私にとって違いはありませんでした。なぜそうなるのでしょうか?
f1lt3r 2016年

@AlistairMacDonaldこれまでにこれで解決できたかもしれませんが、問題が発生した理由を解明するには、さらに詳しい情報が必要でしょう。/ usr / local内のすべての所有権を変更すると、現在のユーザーが/ usr / local構造内にノードリンクを作成できるようになります。私は、所有権ではなく、すべてのファイルのグループ権限を変更することを提案していました。私のコマンドは、ユーザーが/ usr / localのすべてを所有するグループの一部であることを想定しています。/ usr / localにchgrpコマンドを必要とするさまざまなグループがある可能性もあります。
getWeberForStackExchange 2016

特に深夜の司令官とwgetを取得するために、OS X 10.11の下で自作をインストールしました。npmをインストールしていません。mcインストール中の質問で説明されているように、「brew link」ステップが失敗しました。この答えは私にとってうまくいきました。私は変更を加え、「brew link midnight-commander」でリンクを再実行しました。その後、コマンドラインで「mc」と入力すると、予想どおり真夜中の司令官が表示されました。その後、「brew install wget」はファンファーレなしで機能しました。すばらしい答えです。
fyngyrz

このコマンドはで推奨されていますbrew doctorが、私sudo suはを実行し、端末を閉じます
jchnxu

37

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

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


4
少し時間がかかりましたが、私がする必要があったことだけです。ありがとう:)
Christoffer

と同じ問題がありaspellます。競合するファイルとディレクトリを見つけるにはどうすればよいですか?
LWZ 2013

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

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


これでようやくうまくいきました。すでにnpmをインストールした後、brewを介してノードをインストールしようとした後、問題が発生していました。それは本質的に私にとってnpmを破りました。npmフォルダーをrm -rfしてから、brew経由でインストールする必要がありました(npmのアンインストールが機能しなくなりました)。その後、残りの手順は完全に機能しました。
rdrobinson3 2013

5
sudo chmod 777これは適切な解決策ではありません。アクセス許可の問題がある場合は、問題が発生している理由を調査し、ジョブを実行するために必要なアクセス許可の最小レベルを設定してください。このコマンドを使用すると、システム上の誰でもファイルを変更できます。
bobmagoo 2014年

鮮やかさ。ありがとうございました。私はパーマの問題をbrew link node初めて実行していませんでしたが。
Bede Constantinides、

そのディレクトリをchmodするのではなく、私はそれの所有権を取得しました。chown myuser -R -v / usr / local / lib / dtrace /また、dtraceがディレクトリとして存在しないという問題もありました。エラーは同じでしたが、ディレクトリがありませんでした。
Jason Short

15

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

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

brew postinstall nodeチケットだった
プロトタイプ

これがチケットでした!何らかの理由で、brew upgrade 2Xを実行する必要があり、2回目にXCodeのアップデートをインストールするように求められました。brew link --overwrite nodeと最後のコマンドの間で、すべてが機能しているようです。提案した最後のコマンドは、 'sudoのために機能しません。代わりに、brew postinstall node
Dani Amsalem

10

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

私は実行して解決策を見つけましたbrew doctor

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

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


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)あなたのユーザー名に拡張され、怠惰なコピーの貼り付けを手伝うために私の方法から少し外れました;)


2
同じ問題がありました。これは、他のアプリの「make install」を手動で実行した場合に明らかに発生する可能性があります。私は最近ちょうどそれをやった、そしてあなたがしたように解決策はchownすることだった。
Richard Tuttle

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

私はスウェラーと同じ問題を抱えていました:

  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

3

ノードに関するほとんどのbrewインストールの問題は、権限エラーまたは以前にノードをインストールしてから、brewを使用してインストールしようとしたことが原因です。最終的に私のために働いた解決策は:

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

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

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

  2. また、強制的に行いました:

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

  3. スクリプトSource:Removeノードを使用するには

    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(詳細)を使用してノードをインストールします。

    brew install -v node


数字は正しくフォーマットされていません...しかし、手順はあります。明日、フォーマットの問題を修正します。
AhsenB 2014

2

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

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

Brew Doctorを実行している場合、Brewからも推奨されています。


2

ノードと/ usr / local / includeをリンクできないインストール中にエラーが発生しました。

以下の解決策は私にとってうまくいきました:- 最初にインクルードフォルダを作成します、これにはsudo権限が必要です

cd /usr/local

sudo mkdir include

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

brew link node

1

また、これらのHomebrewバージョン間でNPMとインストール済みパッケージをめちゃくちゃにして、ノードを何回リンク解除/リンクしてアンインストール/インストールしても、それでも機能しませんでした。

判明したように、パスからNPMを削除する必要があります。そうしないと、Homebrewがインストールしません。https//github.com/mxcl/homebrew/blob/master/Library/Formula/node.rb#L117

これが同じ問題のある人を助け、その時間を節約できるといいのですが、私は問題を探すのに費やす必要がありました...


ありがとうございました。これを適切に機能させるには、最高投票の回答と組み合わせてこれを行う必要がありました。
kflorence 2013

1

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

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

ターミナルで:

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

次に:

$ brew link node

1
実行するbrew link --overwrite --dry-run nodeと、エラーが表示されますNo such keg: /usr/local/Cellar/node。何が欠けていますか?
PKHunter

1

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

をダウンロードしpkgてインストールするだけです。今、私が作業を持っているnpmし、node再び。


0

それが良いアイデアかどうかわからない:他のすべての解決策を試しても成功しなかった後、私は/ usr / local / lib / dtraceの名前を変更し、ノードをリンクして、ディレクトリの名前を再度変更しました。その後、ノードは期待どおりに動作しました。


0

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

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

npm uninstall npm -g
brew uninstall node
brew install node

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

最後にこれを試しました

brew link --overwrite node

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

お役に立てれば


0

私はbrewを完全にアンインストールして再起動しましたが、同じ問題をもう一度見つけるだけでした。

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

ここに既存のノードライブラリセットが見つかりました:

/usr/local/include/node

頭をひっかいた後、私はこの古いバージョンに対してノードをインストールしたことを思い出しました、そしてそれはbrew経由ではありませんでした。

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

これは、brew uninstallを使用しても、brew自体をアンインストールしても効果がなかった理由を説明しています。

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

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


0

シンボリックリンクノードで頭を壊していました...そして何も機能していないようです...しかし最後に機能したのは適切な権限を設定することです。この「sudo chown -R $(whoami)/ usr / local」は私のために働きました。


0

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

brew link --overwrite node

-5

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

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

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

再度リンク: brew link node

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


5
これは、brewがインストールしようとしている新しいnpmを削除しませんか?これに続いて、動作するnpmがインストールされていない状態になりましたが、私の答えのようにOLD npmフォルダーを削除すると機能します。
natevw

新しいパッケージも削除しようとしているように見えますが、確かに削除する必要があるのは古いパッケージですか?/ usr / local / bin / npmのシンボリックリンクが残っていることが実際にわかりました
Caroline
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.