尝试安装 rvm 和 ruby 1.9.2
我已经安装了 homebrew 和 git,但由于我不断收到权限错误,所以无法获得完整的更新。重新安装雪豹并修复权限。
现在发生这种情况...
$ 酿造安装 wget
错误:无法写入 /usr/local/Cellar
尝试安装 rvm 和 ruby 1.9.2
我已经安装了 homebrew 和 git,但由于我不断收到权限错误,所以无法获得完整的更新。重新安装雪豹并修复权限。
现在发生这种情况...
$ 酿造安装 wget
错误:无法写入 /usr/local/Cellar
sudo chown -R $USER /usr/local
您必须让自己拥有/usr/local/
使用该线路的所有权。在使用官方文档顶部的 ruby one-liner 安装 Homebrew 后,我不得不自己做这件事。对我来说就像一个魅力。这应该是您唯一需要sudo
使用 Homebrew 的时间。
我不确定红宝石单线是否可以做到这一点。如果是这样,那么我系统上的其他东西就控制了/usr/local
。
编辑:我完全错过了这一点,但@samvermette没有(请参阅对我的回答的回复):如果您在上面运行此命令并通过自制软件安装了需要特殊用户权限的东西,例如mysql
,请确保将这些权限归还(如上面的命令给/usr/local
了你内部所有东西的递归所有权($USER
)。在 mysql 的情况下,它是......</p>
sudo chown -RL mysql:mysql /usr/local/mysql/data
您只能允许管理员用户写入/usr/local/
?
chgrp -R admin /usr/local
chmod -R g+w /usr/local
chgrp -R admin /Library/Caches/Homebrew
chmod -R g+w /Library/Caches/Homebrew
由于属于 Admin 组的每个用户都可以安装新的依赖项。
在 High Sierra 上,您需要以下命令,因为 chown 不起作用:
sudo chown -R $(whoami) $(brew --prefix)/*
关联:
卸载并重新安装 HomeBrew 就可以了
我建议确保当前用户是拥有 /usr/local 的组的成员。我相信默认情况下,该组是wheel
. 要使自己成为该组的成员:
$ sudo dscl . append /Groups/wheel GroupMembership $USER
虽然有点不雅,但它具有预期的效果 - 允许访问/usr/local
仅供提升成员使用(读/写)的项目。这种方法具有上述其他方法的优点,因为它利用了组成员资格,使系统上的多个(授权)用户能够使用自制软件。
你是如何安装 Homebrew 的?他们的官方安装说明包括运行 ruby 脚本。那应该为您解决权限问题。
如果您不想运行脚本,该页面中有一个名为“为开发人员安装到 /usr/local”的部分,它解释了 /usr/local 目录所需的权限更改。
编辑:正如评论中提到的,将 sudo 与自制软件一起使用是个坏主意,所以不要使用以下答案!
如果您使用 sudo 执行命令,也可以防止此错误:
$ sudo brew install wget
但是要小心使用sudo
,因为你可能会犯很多错误。