我尝试修复运行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
关于如何解决这个问题的任何想法?
答案 0 :(得分:40)
我设法通过首先运行sudo chown -R $USER /usr/local
并跟随brew link node
来解决此问题。现在我已经正确安装了节点。
答案 1 :(得分:8)
答案 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)
此解决方案有效!它是所有组合的组合。
使用以下代码修复它。
sudo chmod 776 /usr/local/lib
brew link --overwrite node
输出:
Linking /usr/local/Cellar/node/9.6.1... 49 symlinks created
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)
我遇到了同样的问题,这是我正在工作的解决方案。
答案 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/*