节点已经安装,它只是没有链接

Ela*_*Ela 31 macos homebrew node.js

我试图修复错误,你必须在运行npm时使用sudo.我盲目地跟着一个链接卸载节点,代码来自这个要点

运行该命令后,我试图用冲泡装回:brew install node.这给了我以下错误:

Error: The `brew link` step did not complete successfully
The formula built, but is not symlinked into /usr/local
Could not symlink share/doc/node/gdbinit
/usr/local/share/doc/node is not writable.

You can try again using:
  brew link node
Run Code Online (Sandbox Code Playgroud)

试着跑brew link node,我得到了:

Linking /usr/local/Cellar/node/5.4.0... 
Error: Could not symlink share/systemtap/tapset/node.stp
/usr/local/share/systemtap/tapset is not writable.
Run Code Online (Sandbox Code Playgroud)

然后当我写作时brew install npm,我得到:

Warning: node-5.4.0 already installed, it's just not linked
Run Code Online (Sandbox Code Playgroud)

当我写作时,npm -v我得到:

env: node: No such file or directory
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何想法?

Ela*_*Ela 47

我设法通过首先运行sudo chown -R $USER /usr/local并跟随它来解决这个问题brew link node.现在我已正确安装节点.

  • 在OSX High Sierra中无法chown/usr/local.相反,使用这个`sudo chown -R $(whoami)$(brew --prefix)/*`.请参阅https://github.com/Homebrew/brew/issues/3228 (19认同)
  • 我需要执行:brew link --overwrite节点 (4认同)
  • 上面的markhops和vikzilla的评论是对Mojave 10.14.2唯一有用的东西 (2认同)

des*_*e_j 10

此解决方案有效!它是所有组合的组合。

使用以下代码修复它。

  1. sudo chmod 776 /usr/local/lib
  2. brew link --overwrite node

    输出: Linking /usr/local/Cellar/node/9.6.1... 49 symlinks created

  3. sudo chmod 755 /usr/local/lib


NGR*_*NGR 9

  1. sudo chown -R $ USER/usr/local
  2. brew链接 - 覆盖节点


Deb*_*sad 9

如果你在High Sierra,那么sudo chown -R $USER /usr/local将无法工作.而是使用:

sudo chown -R $(whoami) $(brew --prefix)/*
Run Code Online (Sandbox Code Playgroud)

资料来源:https://github.com/Homebrew/brew/issues/3228#issuecomment-332679274


MoD*_*MoD 9

对于莫哈韦|| 卡特琳娜 || 大苏尔用途:

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

brew link --overwrite node
Run Code Online (Sandbox Code Playgroud)

  • 这在 macOS Catalina 上为我解决了这个问题。谢谢! (2认同)

Dan*_*iel 6

您必须允许它被覆盖。任何目录都不可写

例如,如果它的 /usr/lib/dtrace

sudo chown -R `whoami`:admin /usr/lib/dtrace
Run Code Online (Sandbox Code Playgroud)

进而

brew link --overwrite node
Run Code Online (Sandbox Code Playgroud)

修复它


小智 5

将 /usr/local 权限更改为您的用户:

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

然后运行brew postinstall:

brew postinstall node
Run Code Online (Sandbox Code Playgroud)

现在你完成了。去检查:

npm -v
Run Code Online (Sandbox Code Playgroud)

额外步骤:运行brew doctor进行清洁

brew doctor
Run Code Online (Sandbox Code Playgroud)

如果医生发现它,你可能需要修剪一些额外的旧东西。


Bas*_*ani 5

对于OSX High Sierra用户:

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

brew link --overwrite node
Run Code Online (Sandbox Code Playgroud)

然后检查节点-v和npm -v