无法brew安装节点 - 警告:安装后步骤未成功完成

问题描述 投票:0回答:12

问题(2024 年总结)

我正在尝试通过自制程序升级我的节点,但遇到了问题,我遇到了以下错误

Warning: The post-install step did not complete successfully

我也尝试过brew链接节点,但这也不起作用。


编者注(2024):

这个原始问题有十多年前问题的注释和错误日志。现在提出这个问题的人只是在寻找“警告:安装后步骤未成功完成”的解决方案,并且有很多解决方案,因此删除过时的详细信息。

node.js terminal homebrew
12个回答
263
投票

涉及两个步骤。

  1. 只需运行这四个命令:
    sudo chown -R `whoami`:admin /usr/local/include/node
    sudo chown -R `whoami`:admin /usr/local/bin
    sudo chown -R `whoami`:admin /usr/local/share
    sudo chown -R `whoami`:admin /usr/local/lib/dtrace 
  1. 最后,运行覆盖命令:
    brew link --overwrite node

33
投票

我在相同的情况下遇到了同样的问题。我能够通过以下方式成功安装brew版本:

  1. 奔跑
    brew install node
  2. 记下导致问题的模块并将其删除。在你的情况下,这将是
    /usr/local/include/node
  3. 卸载 -
    brew uninstall node
  4. 重新安装 -
    brew install node

我必须对每个剩余的有问题的目录(实际上大约有 3 个不同的目录)重复此过程几次,最终安装成功,没有任何问题。


22
投票

我在运行 Mac OS High Sierra 的新 MacBook Pro 上遇到了这个问题。我发现brew 试图使用/usr/local 下不存在的名为include 和lib 的目录。由于 root 拥有 /usr 我必须手动执行此操作 - 确保

whoami
所有者与 /usr/local 中的对等目录匹配:

sudo mkdir /usr/local/include
chown `whoami`:admin /usr/local/include 
sudo mkdir /usr/local/lib
chown `whoami`:admin /usr/local/lib

然后为了匹配 /usr/local 中的其他目录,我做了:

chmod 775 /usr/local/include
chmod 775 /usr/local/lib

然后执行以下操作:

brew uninstall node 
brew install node

16
投票

您需要使

/usr/local/bin
/usr/local/share
可写。我使用 this 答案来实现这一目标。以下是复制答案中的关键建议,以防链接中断:

sudo chown -R `whoami`:admin /usr/local/bin
sudo chown -R `whoami`:admin /usr/local/share

12
投票

我有同样的错误:

Linking /usr/local/Cellar/node/11.10.0...
Error: Could not symlink include/node /usr/local/include is not writable.

解决方案:

$ sudo mkdir /usr/local/include
$ sudo chown -R $(whoami) $(brew --prefix)/*
$ brew link node

链接 /usr/local/Cellar/node/11.10.0... 创建了 7 个符号链接

$ node -v
=> v11.10.0

$ npm -v
=> 6.7.0


12
投票

brew postinstall node
brew link --overwrite node
似乎没有帮助。

经过几轮

brew uninstall node
brew install node
之后,以下是有问题的目录和文件:

sudo rm -r /usr/local/include/node
sudo rm -r /usr/local/share/doc/node
sudo rm -r /usr/local/lib/node_modules
sudo rm /usr/local/lib/dtrace/node.d
sudo rm /usr/local/share/man/man1/node.1
sudo rm /usr/local/share/systemtap/tapset/node.stp

删除有问题的文件后,

brew
将为您进行所有正确的权限链接。

由于过去使用

root:wheel
安装或手动安装等原因,可能的权限设置为
sudo


9
投票

对于那些在 MacOS 上运行高 Sierra 的人:

我尝试使用

chown
命令授予权限并卸载然后通过自制软件重新安装节点,但没有任何效果。

我刚刚访问此网站 https://nodejs.org/en/download/ 并下载了 64 位 macOS .pkg,它运行良好。我通过在终端中输入命令

node
来测试它。


6
投票

我在链接方面遇到了非常类似的问题。我无法让它发挥作用。我尝试 chmod /usr/local/include/node 这样我就可以写入它的链接,但遇到了另一个错误。作为最终的解决方案,我刚刚从 https://nodejs.org/download/

重新安装了节点

我又有工作节点提示了!我很想通过brew 来更新,但是仅仅使用站点上的pkg 安装程序就省去了很多麻烦。我知道这可能不是您正在寻找的解决方案,但我只是想分享我对同一问题的经验。我希望它有帮助!


2
投票
brew link --overwrite node

错误:无法符号链接(...)

/usr/xxx

sudo chown -R 'whoami?':admin xxx
brew link --overwrite node

冲洗并重复


1
投票

对我来说,我必须运行brew doctor,这表明我没有写访问权限,必须运行

sudo chown -R $(whoami) /usr/local/bin /usr/local/share /usr/local/share/man
来解决问题。

我建议运行

brew doctor
看看它是否可以提供有关该问题的一些提示


1
投票

手动删除错误文件夹或文件并运行此命令

brew uninstall node && brew install node

您必须执行此过程,直到删除所有错误文件夹和文件。

然后节点将被链接。


1
投票

如果您尝试

brew link node
,并且它会显示以下内容:

错误:无法符号链接 include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h 目标 /usr/local/include/node/openssl/archs/aix-gcc/asm/include/openssl/opensslconf.h 已经存在。您可能想删除它:

试试这个:

brew link --overwrite --dry-run node | xargs rm
brew link node 
© www.soinside.com 2019 - 2024. All rights reserved.