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

我正在尝试通过 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卸载节点并重试安装,但是没有成功。

208503 次浏览

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

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

您需要手动删除 npm 包。

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

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

再次链接: brew link node

将有一个软链接到新的位置 npm

现在,node.js 的自制软件包又包含了 npm,所以当我错过了自制软件包关于首先删除独立版本的消息时,就发生了这种情况。

假设,像我一样,在知道先升级到 npm uninstall npm -g之前已经尝试了升级,从而破坏了 node/npm,那么可以先升级到 rm -rf /usr/local/lib/node_modules/npm,然后再升级到 brew link node。这删除了 独立的自托管的 npm 包(而不是一个酿造想要安装) ,并让酿造符号链接其捆绑的一个从 Cellar。

我还搞砸了我的 NPM 和安装软件包之间的这些家酿版本,无论多少次我取消链接/链接和卸载/安装节点,它仍然不工作。

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

希望这将有助于人们与同样的问题,并节省了一个小时左右,我不得不花寻找问题..。

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

我的问题有一个稍微不同的解决方案。 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

注意。$(users)会扩展到你的用户名,帮助偷懒的复制粘贴者;)

当我把所有的应用程序从我的旧 Mac 转移到我的新 Mac 时,我也遇到了同样的问题。

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

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

在运行了 brew prune之后,家酿终于回到了正轨:)

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

* 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 uninstall npm-g”什么也没做)

我尝试了很多方法:

npm uninstall npm -g
brew uninstall node
brew install node

我仍然有一些问题,并得到错误时,我试图链接的节点文件

最后我尝试了这个

brew link --overwrite node

这似乎已经修复了它(它覆盖了所有冲突的文件,还链接了 node 和 npm)

希望这个能帮上忙

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

我经营 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: 更新自制程序

$ brew update

步骤2: 删除系统上的所有节点/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时发现了一些零散的节点文件(这使我得到了正在抱怨的链接错误的详细输出)。你可能需要:

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

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

$ brew install node

我完全卸载酿酒和重新开始,只发现同样的问题再次。

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

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

/usr/local/include/node

经过一些头痛,我记得安装节点的日期对这个旧版本,它没有通过酿造。

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

这就可以解释为什么使用 brewuninstall 或者甚至卸载 brew 本身都没有效果。

排名最高的答案非常简单,但是我想我应该补充一下我的观察,为什么这是必要的。

我猜其他酿造软件包的一系列问题可能是由于旧的非酿造软件包实例挡住了去路。

最终的答案是: 将那个目录的所有者更改为不管你是谁

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

这也是推荐的酿造,如果你运行酿造医生

大多数与节点有关的酿造安装问题是由于权限错误或先前安装了节点,然后试图通过酿造安装它。对我来说最终奏效的解决办法是:

警告: 这将卸载 nodejs (多个版本) ,请谨慎使用:

  1. 通过 brew 删除节点:

    酿造卸载节点

  2. 也是通过武力:

    酿造卸载节点——强制

  3. 使用脚本来源: 删除节点:

    Curl-O < a href = “ https://raw.githubusercontent.com/DomT4/script/master/OSX _ Node _ delete/finally atenode.sh”rel = “ nofollow”> 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. 然后进行一次酿酒更新(保持这样做,直到所有的东西都更新) :

    啤酒更新

  3. 清理酿造和运行更新再次(可能是多余的) ,并运行医生,以确保事情的地方:

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

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

    Brewinstall-v 节点

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

就像酿造站点故障排除中提到的那样

Https://github.com/homebrew/homebrew/wiki/troubleshooting

已经把我的脑袋撞坏了。.似乎什么都不管用,但最终管用的是设置正确的权限。这个“ sudo chown-R $(whoami)/usr/local”为我做了工作。

我使用以下命令在酋长岩修复了这个问题。说实话,我不知道它是干什么的,但是我觉得我应该分享一下,因为它解决了我的问题。

brew link --overwrite 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

通过查找器,删除该文件:

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

终点站:

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

然后:

$ brew link node

安装时出错,无法链接节点和/usr/local/include,无法写入

下面的解决方案对我很有效:- 首先创建 include 文件夹,注意这需要 sudo 特权

cd /usr/local


sudo mkdir include


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


brew link node

我尝试了所有的方法,但没有一个奏效。 最简单的方法是从 < a href = “ https://nodejs.org/en/download/”rel = “ nofollow norefrer”> https://nodejs.org/en/download/重新安装 node

只需下载 pkg并安装它。 现在我有一个工作的 npmnode再次。