Error: Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins
我该如何修复它?
根据这里的描述,如果最近删除了Docker,则需要手动重新创建Docker文件夹:
mkdir -p /Applications/Docker.app/Contents/Resources/cli-plugins
然后运行
brew cleanup
你应该修复这个问题!
之后,你可以在“应用程序”文件夹中删除Docker应用程序。
mkdir -p /Applications/Docker.app/Contents/Resources/cli-plugins
brew cleanup
并非所有人都适用(对我也不适用)。成功的方法是他们建议的:
相反,我删除了sudo rm -r /usr/local/lib/docker/cli-plugins,它是指向那个(不存在的)Docker.app子目录的符号链接。
这是要运行的代码:
sudo rm -r /usr/local/lib/docker/cli-plugins
正如JW所建议的那样,这个链接提供了更多解释:https://github.com/Homebrew/homebrew-core/issues/45009
我尝试了被接受的解决方案,但对我没有用。
最终我用以下命令解决了它:
$ brew cleanup
Error: Permission denied @ apply2files - /usr/local/lib/docker/cli-plugins
$ brew doctor
...
Warning: Broken symlinks were found. Remove them with `brew cleanup`:
/usr/local/lib/docker/cli-plugins
...
$ sudo chown -R "$(whoami)":admin /usr/local/lib
$ brew cleanup
列出文件详细信息
ls -la /usr/local/lib/docker/cli-plugins
显示
lrwxr-xr-x 1 root admin 55 Mar 22 2022 /usr/local/lib/docker/cli-plugins -> /Applications/Docker.app/Contents/Resources/cli-plugins
/usr/local/lib/docker/cli-plugins
是一个链接(别名),指向 /Applications/Docker.app/Contents/Resources/cli-plugins
root
具有写入权限 w
(也允许在清理过程中删除)root
用户,则会遇到此问题取决于您的系统需求
如果您没有或不需要 Docker(可能刚刚删除了它),那么只需删除链接本身即可
sudo rm -r /usr/local/lib/docker/cli-plugins
为什么使用sudo
?因为只有root
才能访问该链接,而您(当前用户,由whoami
标识)无权访问。这就是您首次看到此错误的原因。
为什么使用-r
?因为您想要递归删除整个文件夹。
brew cleanup
如果您正在使用docker,并意外删除了/Applications/Docker.app/Contents/Resources/cli-plugins
文件夹,或更改了权限,则通过重新创建此文件夹来修复问题,以便链接可以指向现有文件夹。
mkdir -p /Applications/Docker.app/Contents/Resources/cli-plugins
brew cleanup
那么
rm -rf /Applications/Docker.app/Contents/Resources/cli-plugins
/Applications/Docker.app
。rm -rf /Applications/Docker.app
递归更改lib
文件夹的权限
为什么?因为usr/local/lib
本来就是为本地用户准备的。您可以获得对它的访问权限,而不是只有root
才能独占任何项目。
参考https://askubuntu.com/questions/138547/how-to-understand-the-ubuntu-file-system-layout
sudo chown -R "$(whoami)":admin /usr/local/lib
附注:可能还有其他解决此问题的方法,但建议消除根本原因。
sudo rm -r /usr/local/lib/docker/cli-plugins
,该路径是指向那个(不存在的)Docker.app子目录的符号链接。更多信息请参见:https://github.com/Homebrew/homebrew-core/issues/45009 - JW.