我已经卸载和安装了3次Homebrew,因为它似乎永远不允许我安装任何东西,因为它在大多数安装结束时拒绝我的权限。

作为一个例子,我将发布我目前面临的libjpeg下载场景。

我尝试安装libjpeg并获得:

$ brew install libjpeg
==> Downloading https://downloads.sf.net/project/machomebrew/Bottles/jpeg-8d.mountain_lion.bottle.1.tar.gz
Already downloaded: /Library/Caches/Homebrew/jpeg-8d.mountain_lion.bottle.1.tar.gz
==> Pouring jpeg-8d.mountain_lion.bottle.1.tar.gz
Warning: Could not link jpeg. Unlinking...
Error: The brew link step did not complete successfully
The formula built, but is not symlinked into /usr/local
You can try again using `brew link jpeg'
Error: Permission denied - /usr/local/opt/jpeg

'brew link jpeg'的结果

Error: Permission denied - /usr/local/opt/jpeg

这是我的酿酒医生读的

$ brew doctor
Warning: "config" scripts exist outside your system or Homebrew directories.
./configure scripts often look for *-config scripts to determine if
software packages are installed, and what additional flags to use when
compiling and linking.

Having additional scripts in your path can confuse software installed via
Homebrew if the config script overrides a system or Homebrew provided
script of the same name. We found the following "config" scripts:

/Library/Frameworks/Python.framework/Versions/2.7/bin/python-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2-config
/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7-config
Warning: You have unlinked kegs in your Cellar
Leaving kegs unlinked can lead to build-trouble and cause brews that depend on
those kegs to fail to run properly once built. Run brew link on these:

jpeg

这个许可问题已经使它不可能使用酿造任何东西,我真的很感激任何建议。


当前回答

我使用了这两个命令并解决了我的问题

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

sudo chown -R $(whoami) /usr/local/etc/bash_completion.d /usr/local/lib/python3.7/site-packages /usr/local/share/aclocal /usr/local/share/locale /usr/local/share/man/man7 /usr/local/share/man/man8 /usr/local/share/zsh /usr/local/share/zsh/site-functions /usr/local/var/homebrew/locks

其他回答

所有这些建议都可能奏效。在最新版本的brew doctor中,有了更好的建议。

首先-通过在命令行中运行这个命令来修复你可能已经造成的/usr/local混乱:

sudo chown -R root:wheel /usr/local

然后获取路径的所有权,应该专门为这个用户:

sudo chown -R $(whoami) /usr/local/lib /usr/local/sbin /usr/local/var /usr/local/Frameworks /usr/local/lib/pkgconfig /usr/local/share/locale

所有这些信息都是可用的,如果你运行sudo brew update,然后阅读所有的警告和错误,你会遇到…

macOS High Sierra的新命令,因为不可能咀嚼/usr/local:

bash / zsh:

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

鱼:

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

参考:不能chown /usr/local在High Sierra

对于像我一样降落在这里的人来说,第一选择是,按照这个建议去做:

brew doctor

这是最安全的方法,除此之外,它还建议我:

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

这解决了权限问题。

OP这样做了,但显然没有得到上述建议;你可能会,从这里开始总是更好的,然后再寻找非平凡解如果它没有帮助的话。

我可以通过在文件夹上使用chown解决这个问题:

sudo chown -R "$USER":admin /usr/local

此外,你(很可能)必须在/Library/Caches/Homebrew上做同样的事情:

sudo chown -R "$USER":admin /Library/Caches/Homebrew

显然,我之前用sudo改变了我在/usr/local上的文件夹权限, 从这里开始,所有带有brew的安装都被证明是成功的。

这个答案来自gitHub的自制问题跟踪器

cd /usr/local && sudo chown -R $(whoami) bin etc include lib sbin share var opt Cellar Frameworks