HomeBrew:错误 - /usr/local/Cellar 不可写

22

当我在终端中运行以下命令时:

/usr/bin/ruby -e"$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

我会得到一个错误:

/usr/local/Cellar is not writable. You should change the
ownership and permissions of /usr/local/Cellar back to your
user account:
sudo chown -R $(whoami) /usr/local/Cellar

更新 /usr/local/bin/brew 失败。

我在 S.O 上看了类似的帖子,它们的答案都是以下命令,于是我在终端中运行了以下命令:

  1. sudo chown -R $tejas /usr/local/Cellar
  2. sudo chown -R $tejas:admin /usr/local/Cellar
  3. sudo chown -R $tejas /usr/local
  4. sudo chown -R $tejas:admin /usr/local

在执行以上四个命令后,我再次运行安装命令,但仍然出现错误。请问有人可以帮我修复这个问题吗?谢谢。


3
你刚才尝试过 `sudo chown -R $(whoami) /usr/local/Cellar' 吗? - Musen
8
我猜不行吗?我的意思是文字直译 udo chown -R $(whoami) /usr/local/Cellar ,不要替换 whoami 为其他任何内容。请注意,这里的udo可能需要根据您的系统配置进行修改。 - Musen
6
$(whoami)$USER都会被解析为您的用户名。 - Musen
看看这篇文章:这里。它解决了我的问题! - Beck
2
如果我需要在同一设备上为多个用户提供可用性呢? - Cris
显示剩余3条评论
6个回答

19

如评论中所述,只需执行以下操作(不进行任何替换):

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

19

我曾经遇到过同样的问题。我尝试重置权限,但是某些包无法安装。重新安装 Homebrew 解决了我的问题:

卸载:
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)"


9
重置 /usr/local 和 Homebrew 缓存的权限为当前用户:
sudo chown -R $USER:admin /usr/local /Library/Caches/Homebrew

1

方法一: 这种方法可能适用于旧的操作系统,因为它将权限设置为目录:

 sudo chown -R $USER /usr/local/Cellar

方法2. 在较新的系统中无法在目录本身上设置权限,但可以通过使用通配符(星号)'*' 强制将权限添加到所有子文件夹中(当然有点危险?)。

sudo chown -R $USER /usr/local/Cellar/*

方法三:在 High Sierra 或更新版本中使用 brew 前缀

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

1

当我在MacOS上安装GoAccess时,遇到了同样的问题:

Error: /usr/local/Cellar is not writable. You should change the
ownership and permissions of /usr/local/Cellar back to your
user account:
  sudo chown -R $(whoami) /usr/local/Cellar
Error: The following directories are not writable by your user:
/usr/local/Cellar
/usr/local/share/zsh
/usr/local/share/zsh/site-functions

我通过运行以下命令来修复它:

 sudo chown -R $(whoami) /usr/local/Cellar /usr/local/share/zsh /usr/local/share/zsh/site-functions

0

在 @Lemaitre Cedric 和 @Rexcirus 的帮助下,我解决了我的问题。

sudo chown -R $USER:admin /usr/local /Library/Caches/Homebrew
sudo chown -R $(whoami) /usr/local/Cellar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接