我尝试使用Homebrew安装Python,它下载了Python,但最后弹出一个错误消息导致安装未能完成。当我再次尝试安装时,提示我执行以下操作:
$ brew link python
输入之后,仍然出现相同的错误信息:
permission denied @ dir_s_mkdir - /usr/local/lib
我尝试过:
$ sudo chown -R $(whoami) /usr/local
我收到了这样一条错误信息:
chown: /usr/local: 操作不允许
我尝试使用Homebrew安装Python,它下载了Python,但最后弹出一个错误消息导致安装未能完成。当我再次尝试安装时,提示我执行以下操作:
$ brew link python
输入之后,仍然出现相同的错误信息:
permission denied @ dir_s_mkdir - /usr/local/lib
我尝试过:
$ sudo chown -R $(whoami) /usr/local
我收到了这样一条错误信息:
chown: /usr/local: 操作不允许
sudo mkdir /usr/local/Frameworks
sudo chown $(whoami):admin /usr/local/Frameworks
brew link python3
/usr/local/Frameworks
目录;2)将该目录的所有权更改为当前用户;最后3)brew link
会在Cellar
中创建手动安装的软件包的符号链接。有关brew link
的更多信息,请参见此处https://dev59.com/vVwX5IYBdhLWcg3w4SzR - Sylvester Loretobrew link python3
的安装之前,我选择执行brew uninstall python
,然后再执行brew install python
。 - ndronebrew reinstall python
。 - Scott Willekesudo mkdir /usr/local/Frameworks
sudo chown $USER /usr/local/Frameworks
然后尝试重新安装Python。这对我来说非常有效。
运行此程序,并按照其建议操作:
brew doctor
在我的情况下,它让我运行:
sudo mkdir -p /usr/local/sbin /usr/local/Frameworks
sudo chown -R $(whoami) /usr/local/sbin /usr/local/Frameworks
brew doctor
推荐了相同的命令。 - Dávid Molnár我尝试过,得到了同样的输出(我认为是这样的):
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/Frameworks
Error: Permission denied @ dir_s_mkdir - /usr/local/Frameworks
我创建了一个名为/usr/local/Frameworks的目录,并使用root账户更改了所有权:
所以我创建了一个名为/usr/local/Frameworks的目录,作为root用户,并更改了其所有权:
sudo mkdir /usr/local/Frameworks && chown $USER:admin /usr/local/Frameworks
我又尝试了一次brew install python
:
Warning: python 2.7.14 is already installed, it's just not linked.
You can use `brew link python` to link this version.
然后执行brew link python
:
Linking /usr/local/Cellar/python/2.7.14... 26 symlinks created
现在在目录 /usr/local/Frameworks/Python.framework/ 我可以看到链接,例如:
lrwxr-xr-x 1 niquit admin 62 Dec 8 21:41 /usr/local/Frameworks/Python.framework/Headers -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Headers/
lrwxr-xr-x 1 niquit admin 61 Dec 8 21:41 /usr/local/Frameworks/Python.framework/Python -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Python*
lrwxr-xr-x 1 niquit admin 64 Dec 8 21:41 /usr/local/Frameworks/Python.framework/Resources -> ../../Cellar/python/2.7.14/Frameworks/Python.framework/Resources/
在您的情况下,我建议手动创建/usr/local/lib:sudo mkdir /usr/local/lib && chown $USER:admin /usr/local/lib
我通过mv /usr/local/lib{,.orig}
进行了测试,结果如下:
Error: An unexpected error occurred during the `brew link` step
The formula built, but is not symlinked into /usr/local
Permission denied @ dir_s_mkdir - /usr/local/lib
Error: Permission denied @ dir_s_mkdir - /usr/local/lib
就像之前我手动创建了目录 sudo mkdir /usr/local/lib && chown $USER:admin /usr/local/lib
,并成功运行了 brew link python
:
Linking /usr/local/Cellar/python/2.7.14... 324 symlinks created
现在我可以找到一些链接:
lrwxr-xr-x 1 niquit admin 54 Dec 8 22:01 python-2.7.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python-2.7.pc
lrwxr-xr-x 1 niquit admin 50 Dec 8 22:01 python.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python.pc
lrwxr-xr-x 1 niquit admin 51 Dec 8 22:01 python2.pc -> ../../Cellar/python/2.7.14/lib/pkgconfig/python2.pc
我认为在最新的更新后,苹果增强了安全性,因此现在无法在没有管理员权限的情况下创建 /usr/ 目录。
ls -lO /usr
时,你的/usr/local
目录旁边列出了restricted
?这听起来像是一个大问题,绝对不应该这样设置。我看过的所有官方Apple文档(以及大量非官方文档)都明确地将/usr/local
从SIP中排除。我想知道它是怎么变成那样的。 - bnaeckerbrew doctor
sudo mkdir -p /usr/local/lib /usr/local/sbin
sudo chown -R $(whoami) /usr/local/lib /usr/local/sbin
/usr/local
在 High Sierra 中不再能够使用 chown 命令进行更改。请使用以下命令代替:
sudo chown -R $(whoami) $(brew --prefix)/*
针对 macOS 用户的命令:
bash/zsh:
sudo chown -R $(whoami) $(brew --prefix)/*
fish:
sudo chown -R (whoami) (brew --prefix)/*
我重新安装了Brew并解决了问题。
要卸载,请使用以下命令。
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)"
卸载并进行Homebrew的全新安装可以解决该问题。
/usr/local/
,如果权限已经出了问题,那么它的行为方式与当前安装尝试创建符号链接有什么不同呢?我猜你可以强制 Homebrew 使用不同的 brew --prefix
。 - bnaecker/usr/local
的情况下,如你在其他评论中提到的那样,那么这是怎么工作的?你又是如何删除之前安装的Homebrew的? - bnaeckerbrew doctor
如评论区Chris所建议的,这个命令几乎解决了我在一台非官方运行macOS Mojave的Mac Mini 2011 5,1上遇到的所有home-brew问题。只需输入该命令并按照终端打印的所有方向操作即可。
\
whomai``。 - henrikstroemls -le
命令检查 ACL,使用ls -lO
命令检查标志,使用ls -l@
命令检查 xattrs。 - bnaecker