错误:"brew链接"步骤未成功完成

cha*_*vdw 152 macos homebrew node.js npm

我正在尝试通过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
Run Code Online (Sandbox Code Playgroud)

那么我尝试手动链接节点...

?  ~  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
Run Code Online (Sandbox Code Playgroud)

没有运气,所以我尝试强制链接节点...

?  ~  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
Run Code Online (Sandbox Code Playgroud)

我在任何方面都不熟悉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.
Run Code Online (Sandbox Code Playgroud)

我已经尝试卸载节点brew uninstall node并重试安装而没有运气.

fra*_*ort 148

我运行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
Run Code Online (Sandbox Code Playgroud)

那么brew将无法在该目录中创建其npm符号链接.这是我的解决方案:

第1步:更新Homebrew

$ brew update
Run Code Online (Sandbox Code Playgroud)

第2步:删除系统中的node/npm

根据您过去安装node/npm的方式,其中一些命令不是必需的.

$ brew uninstall npm
$ brew uninstall node
$ npm uninstall npm -g
$ sudo rm -rf /usr/local/lib/node_modules
Run Code Online (Sandbox Code Playgroud)

注意:我有运行时发现的杂散节点文件brew -v link node(这给了我brew的抱怨的链接错误的详细输出).您可能需要:

$ sudo rm -rf /usr/local/include/node
$ sudo rm -rf /usr/local/lib/node
Run Code Online (Sandbox Code Playgroud)

步骤3:打开新终端并安装节点

$ brew install node
Run Code Online (Sandbox Code Playgroud)

  • 为我工作......虽然我不得不删除node_modules(以's'结尾)目录... (5认同)

nat*_*evw 123

node.js的自制软件包现在再次包含npm,所以当我错过自制软件包关于首先删除独立版本的消息时,这发生在我身上.

假设,像我一样,你已经通过尝试升级知道要打破之前节点/ NPM npm uninstall npm -g首先,你可以rm -rf /usr/local/lib/node_modules/npmbrew link node.这将删除独立的自托管npm软件包(而不是一个brew想要安装的软件包),并让brew符号链接从Cellar捆绑出来.

  • 删除npm后,您需要关闭并重新打开终端,将其从路径中删除,以便链接正常工作,正如@dain在评论中提到的那样. (7认同)

Tal*_*lal 40

sudo chown -R $(whoami) /usr/local 
Run Code Online (Sandbox Code Playgroud)

会像Brew网站故障排除中提到的那样做得很好

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

  • 我很惊讶他们推荐这个.这样做不是更好:`sudo chmod -R g + w/usr/local`(虽然老实说,都吓到我了) (3认同)

Tre*_*xon 37

您可能已经使用不同的方法安装了较旧版本的node.js,因此您需要手动删除以brew方式获取的文件.

执行brew link -n node并手动删除那些冲突的文件和目录,然后重试brew link node.

  • 花了一些时间,但正是我需要做的.谢谢 :) (4认同)

Wil*_*ill 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
Run Code Online (Sandbox Code Playgroud)

在此序列之后,一切都成功了

  • `sudo chmod 777`如果您遇到权限问题,调查它们发生的原因并设置完成工作所需的最低权限级别,这绝不是正确的解决方案.此命令将允许系统中的任何人修改该文件. (5认同)

Ran*_*ula 14

试试这个.得到了另一个参考,并为我工作.

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

  • `brew postinstall Node` 就是门票 (2认同)

小智 9

将我的所有应用程序从旧Mac转移到新Mac后,我遇到了同样的问题.

我通过运行找到了解决方案brew doctor:

警告:找到了损坏的符号链接.删除它们brew prune

运行后brew prune,Homebrew终于回到正轨:)