Homebrew需要/ usr / local中的权限,因为没有其他人使用我的笔记本电脑,我总是这样做
sudo chown -R $(whoami) $(brew --prefix)
但是在High Sierra,这给了
chown: /usr/local: Operation not permitted
修复是什么?
问题不断发生......深入挖掘后我发现只卸载Homebrew然后重新安装就解决了这个问题。
卸载Homebrew:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/uninstall)"
然后重新安装它:
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
确保您没有在主文件夹或安装需要访问的任何文件夹上设置锁定。
即使权限和所有权设置正确并且您当前使用正确的用户/或Root用户登录,也不允许您创建新文件夹或目录。
我没有/ user / local / Frameworks文件夹,所以这个修复了它
sudo mkdir -p /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/Frameworks
我有OSX High Sierra
不幸的是,你不能再在High Sierra中加入/usr/local
了。一个解决方法是sudo mkdir /usr/local/include
和/usr/local/Frameworks
,如果它们不存在,和
sudo chown -R $(whoami) $(brew --prefix)/*
感谢ilovezfs这个简单的解决方法和惊人的自制软件!
您无法更改/usr/local
本身的权限,但您可以更改下方文件夹的权限,因此修复了
sudo chown -R $(whoami) /usr/local/*
我跟着this,但问题仍然存在。 所以,我重新安装了自制软件而没有卸载前一个。它现在正在工作! (我不知道怎么回事)
我只是运行这个,一切都在高山脉上得到照顾:
/ usr / bin / ruby -e“$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)”
问题仍然存在于最新的MacOS即Mojave
中。卸载并重新安装Homebrew无法解决目录权限问题。事实上,它与Homebrew安装完全无关!
当我们做brew install python
时,它只是倒入brew python,然后尝试在/ usr / local dir下创建符号链接,brew没有权限。当我们尝试执行sudo chown -R $(whoami) /usr/local
时,它不起作用,因为它需要额外的权限,而普通的mac用户(即你的用户名)没有。但正如@Reza在他的answer中提到的,可以更改下面任何目录的权限。只需发出以下命令:
sudo chown -R $(whoami) /usr/local/*
尝试禁用System Integrity Protection。从文档:
可以使用csrutil(1)命令配置系统完整性保护。
您可以通过在终端中运行以下命令来检查系统上当前是否已启用系统完整性保护:
$ csrutil status
System Integrity Protection status: enabled.
要启用或禁用系统完整性保护,您必须启动到Recovery OS并从终端运行csrutil(1)命令。
通过重新启动计算机并在启动时按住Command和R键来引导至Recovery OS。从Utilities菜单启动Terminal。输入以下命令:
$ csrutil enable
在计算机上启用或禁用系统完整性保护后,需要重新启动。
如果你使用zsh是因为你来自bash,你可能需要更改你的$ PATH。你应该在.zshrc中添加export PATH=$HOME/bin:/usr/local/bin:$PATH
它应该工作,这个问题通过这种方式解决了我的mac。
This one worked from Apple stackexchange
$ cd /usr/local
$ sudo chown -R <your-username>:<your-group-name> *
组名通常staff
,不要忘记*