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

时间:2016-02-07 03:01:21

标签: node.js macos homebrew

我尝试修复运行npm时必须使用sudo的错误。我盲目地跟着一个链接卸载节点,代码来自这个gist

运行命令后,我尝试用brew: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

尝试运行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.

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

Warning: node-5.4.0 already installed, it's just not linked

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

env: node: No such file or directory

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

13 个答案:

答案 0 :(得分:40)

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

答案 1 :(得分:8)

  1. sudo chown -R $ USER / usr / local
  2. brew link --overwrite node

答案 2 :(得分:7)

如果您在High Sierra上,那么sudo chown -R $USER /usr/local将不起作用。而是使用:

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

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

答案 3 :(得分:4)

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

使用以下代码修复它。

  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

答案 4 :(得分:4)

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

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

sudo chown -R `whoami`:admin /usr/lib/dtrace

然后

brew link --overwrite node

解决

答案 5 :(得分:3)

对于OSX High Sierra用户:

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

brew link --overwrite node

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

答案 6 :(得分:2)

我在Cannot read property 'init' of undefined时遇到了同样的问题,但引用了brew link jq。在我的一台机器上,我无法应用Ela建议。 我做了/usr/local/lib is not writable然后我sudo chmod 776 /usr/local/lib成功了,然后又将其更改为brew link jq

答案 7 :(得分:2)

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

sudo chown -R $USER /usr/local

然后运行brew postinstall:

brew postinstall node

现在你已经完成了。检查:

npm -v

额外步骤:运行brew医生进行清洁

brew doctor

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

答案 8 :(得分:2)

对于莫哈韦沙漠||卡塔利娜使用:

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

brew link --overwrite node

答案 9 :(得分:1)

在这种情况下,显然您正在为机器上的2个版本苦苦挣扎 和您应该将指针链接到正确的版本,尝试再次安装节点,然后 取消链接先前的版本并链接新的版本

brew install node
brew link --overwrite node

//If it already linked
brew unlink node && brew link node

答案 10 :(得分:0)

我遇到了同样的问题,这是我正在工作的解决方案。

https://stackoverflow.com/a/56962235/563735

答案 11 :(得分:0)

sudo chown -R $ USER / usr / local避免这种情况。拥有所有权很棘手,对于菜鸟来说可能是灾难性的。

如果您使用的是Home-brew,请不要分别安装node和rpm。

首先安装Homebrew,然后使用brew安装所有软件包。

解决方案-如果您分别安装node和npm,然后又通过自制程序安装,那么您将遇到权限问题-遇到此问题时,我正在安装React Native CLI。 删除所有下面提到的文件夹。 / usr / local / bin,/ usr / local / etc,/ usr / local / include,/ usr / local / lib,/ usr / local / sbin ,/ usr / local / share,/ usr / local / var,/ usr / local / opt,/ usr / local / share / zsh,/ usr / local / share / zsh / site-functions,/ usr / local / var / homebrew,/ usr / local / var / homebrew / linked ,/ usr / local /酒窖,/ usr / local /酒窖,/ usr / local / Homebrew,/ usr / local / Frameworks

我删除了/ user / local文件夹下的所有文件,因为我什么都没有安装。

只需执行此操作,然后重新安装自制软件,然后尽情享受吧!

答案 12 :(得分:0)

解决了以下类似问题:

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

这也可能在将来的场合派上用场

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