繁体   English   中英

错误:“酿造链接”步骤未成功完成

[英]Error: The 'brew link' step did not complete successfully

我正在尝试通过 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并重试安装但没有运气。

我运行 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

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 捆绑的包。

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

就像 brew site 故障排除中提到的那样就好了

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

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

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

我有点晚了,对我有用的是:

* 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

在这个序列之后一切都成功了

试试这个。 从另一个参考资料中得到并为我工作。

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

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

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

警告:发现损坏的符号链接。 brew prune去除它们

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

我的问题有一个稍微不同的解决方案。 brew 想要在其中创建符号链接的目录不属于当前用户所有。

ls -la /usr/local/bin/lib/node | grep node 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

附: $(users)将扩展为您的用户名,我有点想帮助懒惰的复制粘贴者;)

谢谢@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

node 的大多数 brew install 问题是由权限错误或先前安装 node 然后尝试通过 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. 清理 brew 并再次运行更新(可能是多余的)并运行医生以确保一切就绪:

    酿造清理; 酿造更新; 酿造医生

  4. 最后通过 brew (verbose) 安装节点:

    brew install -v 节点

最终答案:将该目录的所有者更改为您是谁

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

如果您运行 brew doctor,那么 brew 也推荐

我在安装时遇到错误,无法链接节点并且 /usr/local/include 不可写

以下解决方案对我有用:-首先创建包含文件夹,注意这需要 sudo 权限

cd /usr/local

sudo mkdir include

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

brew link node

我还设法弄乱了我的 NPM 并在这些 Homebrew 版本之间安装了软件包,无论我取消链接/链接和卸载/安装节点多少次,它仍然无法正常工作。

事实证明,您必须从路径中删除 NPM,否则 Homebrew 不会安装它: https : //github.com/mxcl/homebrew/blob/master/Library/Formula/node.rb#L117

希望这会帮助有同样问题的人并节省那个小时左右我不得不花时间寻找问题......

通过 Finder,删除此文件:

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

在终端:

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

然后:

$ brew link node

我已经尝试了所有方法,但没有一个有效。 最简单的方法是从https://nodejs.org/en/download/重新安装节点

只需下载pkg并安装它。 现在我又有了一个有效的npmnode

不知道,这是否是一个好主意:在尝试了所有其他解决方案都没有成功之后,我只是重命名了 /usr/local/lib/dtrace、链接节点并再次重命名了目录。 之后,节点按预期工作。

我为此苦苦挣扎了一段时间。 (对我来说“npm uninstall npm -g”什么也没做)

我尝试了很多东西:

npm uninstall npm -g
brew uninstall node
brew install node

当我尝试链接节点文件时,我仍然遇到一些问题并且出现错误

最后我试过这个

brew link --overwrite node

这似乎已经解决了它。 (它会覆盖所有冲突文件并链接节点和 npm)

希望这可以帮助

我完全卸载了 brew 重新启动,却又发现同样的问题。

Brew 似乎通过将所需的二进制文件符号链接到您的系统中来工作,其他安装方法通常会复制这些文件。

我在这里找到了一组现有的节点库:

/usr/local/include/node

经过一番挠头之后,我记得在这个旧版本的日期安装了节点,并且它不是通过 brew 安装的。

我手动删除了整个文件夹并成功链接了 npm。

这将解释为什么使用 brew uninstall 甚至卸载 brew 本身都没有效果。

排名最高的答案非常简单,但我想我会添加我对为什么有必要的看法。

我猜其他 brew 包的一堆问题可能是由旧的非 brew 包实例造成的。

一直在符号链接节点上破坏我的头脑......似乎没有任何工作......但最终有效的是设置正确的权限。 这个 'sudo chown -R $(whoami) /usr/local' 为我完成了这项工作。

我使用以下命令在 El Capitan 中修复了这个问题。 老实说,不知道它做什么,但我想我会分享,因为它解决了我的问题。

brew link --overwrite node

您需要手动删除 npm 包。

第一个取消链接节点: brew link -n node

删除 npm 文件夹: rm -R /usr/local/Cellar/node/0.8.10/lib/node_modules/npm

再次链接: brew link node

npm新位置会有软链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM