关于ruby:在Homebrew中安装错误

Installing in Homebrew errors

试图安装rvm和ruby 1.9.2

我已经安装了自制软件和git,但无法获得完整的更新,因为我一直收到权限错误。 重新安装Snow Leopard并修复了权限。

现在这发生了......

$ brew install wget

Error: Cannot write to /usr/local/Cellar


sudo chown -R $USER /usr/local

你必须在那里使用那条线给自己/usr/local/的所有权。在使用官方文档顶部的红宝石单行程序安装Homebrew之后,我必须自己完成这项工作。对我来说就像一个魅力。它应该是你用Homebrew sudo唯一需要的时间。

我不确定红宝石单线是否能做到这一点。如果确实如此,那么我的系统上的其他东西控制了/usr/local

编辑:我完全错过了这个,但@samvermette没有(请参阅我的回答回复):如果您运行上面的命令,并通过自制程序安装了需要特殊用户权限的东西,如mysql,请确保提供这些权限返回(因为上面的命令给你/usr/local内的所有内容递归所有权($USER)。在mysql的情况下,它是......

sudo chown -RL mysql:mysql /usr/local/mysql/data


升级到Mavericks后我遇到了这个问题,这个页面是谷歌搜索错误消息时的最佳搜索结果。我继续搜索并在stack overflow.com上找到了这个答案。简而言之,它是:

1
sudo chmod a+w /usr/local/Cellar

这解决了我的问题,因为它只更改了错误消息中引用的特定路径的权限,似乎不太可能对其他安装产生负面影响。

我把这个答案放在这里,对于那些可能像我一样首先找到这个页面的人。但是,应该归功于jdi。


您只能允许管理员用户写入/usr/local/

1
2
3
4
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)/*

链接:

https://github.com/Homebrew/brew/issues/3228


卸载并重新安装HomeBrew即可


我建议确保当前用户是拥有/ usr / local的组的成员。我相信默认情况下,该组是wheel。要使自己成为该组的成员:

1
$ sudo dscl . append /Groups/wheel GroupMembership $USER

虽然它是一种不优雅的锤子,但它具有预期的效果 - 允许访问/usr/local中仅供高级成员使用(读/写)的项目。这种方法具有上述其他方法的优点,因为它利用了组成员资格,使系统上的多个(授权)用户能够使用自制程序。


你是怎么安装Homebrew的?他们的官方安装说明包括运行ruby脚本。这应该照顾你的许可问题。

如果您不想运行脚本,则该页面的一部分名为"安装到/ usr / local for Developers",它解释了/ usr / local目录所需权限的更改。


编辑:正如评论中提到的,使用sudo与自制软件是一个坏主意,所以不要使用以下答案!

如果使用sudo执行命令,也可以防止此错误:

1
$ sudo brew install wget

但要注意使用sudo因为你可以犯很多错误。