Skip to content

修复 Homebrew 权限问题的解决方案

快速修复命令

sudo chown -R $(whoami):admin /usr/local/* && sudo chmod -R g+rwx /usr/local/*
brew list | xargs brew reinstall

操作步骤解析

更新目录权限

sudo chown -R $(whoami):admin /usr/local/*

此命令将 /usr/local/ 目录的所有者更改为当前用户,所属组更改为 admin

重新安装所有包

brew list | xargs brew reinstall

此命令列出所有已安装的包,并对每个包执行重新安装操作,确保所有包恢复正常。

问题描述

Homebrew 在执行某些操作时可能会遇到权限错误,例如:

Error: Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins

常见原因

  • 最近删除了 Docker:如果你最近删除了 Docker,可能导致 /usr/local/lib/docker/cli-plugins 目录或其符号链接仍然存在。
  • 目录权限问题:某些目录(如 /usr/local/lib)的权限设置不正确。
  • Homebrew 自动清理brew cleanup 命令可能会导致权限问题,尤其是在系统或软件更新后。

全面解决方案

1. 检查和更新目录权限

sudo chown -R $(whoami):admin /usr/local/*

2. 清理 Homebrew

brew cleanup

如果遇到权限问题,可以尝试:

sudo chown -R $(whoami):admin /usr/local/lib
brew cleanup

3. 删除 Docker 相关目录或符号链接

sudo rm -r /usr/local/lib/docker/cli-plugins

4. 重新创建 Docker 目录

mkdir -p /Applications/Docker.app/Contents/Resources/cli-plugins

5. 使用 brew doctor 检查问题

brew doctor

根据 brew doctor 的输出,可能需要执行以下命令来修复目录权限:

sudo chown -R $(whoami):admin /usr/local/include /usr/local/lib /usr/local/share
chmod u+w /usr/local/include /usr/local/lib /usr/local/share

进一步的解决方法

如果上述方法仍无法解决问题,可以参考以下资源: