1. ホーム
  2. macos

[解決済み] エラーが発生しました。brew link' ステップが正常に完了しませんでした。

2022-05-01 21:20:40

質問

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.

nodeのアンインストールは brew uninstall node をクリックし、インストールを再試行しても、うまくいきません。

解決方法を教えてください。

node.jsのhomebrewパッケージが再びnpmを含むようになったので、homebrewパッケージの「スタンドアロン版を先に削除してください」というメッセージを見逃していたらこのようなことが起きました。

私のように、アップグレードに失敗して node/npm を壊してから npm uninstall npm -g を最初に選択すると rm -rf /usr/local/lib/node_modules/npm で、次に brew link node . これによって スタンドアロン セルフホスティングされたnpmパッケージ(brewがインストールしたいものではなく)と、brewがCellarからバンドルされたものをシンボリックリンクするようにします。