Installing in Homebrew errors
试图安装rvm和ruby 1.9.2
我已经安装了自制软件和git,但无法获得完整的更新,因为我一直收到权限错误。 重新安装Snow Leopard并修复了权限。
现在这发生了......
$ brew install wget
Error: Cannot write to /usr/local/Cellar
-
你尝试过sudo吗?
-
stackoverflow.com/questions/4804169/应该被标记为已接受的答案 - 我担心没有看到这个问题的访问者没有得到回答他们会继续前进
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
-
请注意:此命令将从mysql用户删除/ usr / local / mysql / data的所有权。在我的情况下,阻止mysql启动。修复:sudo chown -RL mysql:mysql /usr/local/mysql/data
-
我使用sudo chown -R $USER /usr/local/Cellar避免了mysql问题,因为/usr/local/已经拥有了对我的正确权限
-
这应该是公认的答案,该死的。
-
唉,用户来和用户去...也许有一天Ibrahim会回来并标记它。也许。 (可能不是。)
-
我很困惑,mysql是否需要拥有mysql内所有内容?比如/ var / local / var / mysql和/ usr / local / Cellar / ?? / tmp是哪个mysql查找sock文件的?在过去的24小时里,我已经让我的大脑感到震惊,因为我正在让一个brew mysql正常运行。然后我在brew医生那里得到写错误,目录是777.这非常烦人,每个人似乎都有不同的答案。
-
在OSX Mavericks上我还必须运行"sudo rm -rf / Library / Caches / Homebrew",因为当我使用sudo安装一些brew时,存在一些权限问题。
-
最后!这个刺的最终答案就在我身边。非常感谢。
-
我不喜欢这个答案。它假设只有一个用户使用过该系统,并且该用户应该拥有/ usr / local所有内容,尽管问题只是关于自制软件。 brew不能与多用户系统一起使用吗?这是一个草率的答案,即使它确实有效。此外,它没有解释用户如何遇到这种情况。提示 - 我使用规范指令安装HomeBrew,然后从TimeMachine备份(到另一台机器)恢复。我怀疑是恢复改变了文件所有权。
-
使用此突击队后,我仍然会收到错误:Error: Permission denied - /Library/Caches/Homebrew/Formula/node.brewing。谨慎使用。
-
我同意@JasonR.Coombs;在不了解实际和安全后果的情况下,人们不应该使用这种草率的解决方案。现在,/ usr / local中的任何软件都可能被用户下运行的任何软件覆盖,从而打开安全漏洞。通过盲目运行第一个chown命令,你完全有可能将其他东西(除MySQL之外)搞砸了,之后识别并修复你可能刚刚搞砸的所有内容为时已晚。
-
在macOS 10.13.3中给出chown: /usr/local: Operation not permitted
升级到Mavericks后我遇到了这个问题,这个页面是谷歌搜索错误消息时的最佳搜索结果。我继续搜索并在stack overflow.com上找到了这个答案。简而言之,它是:
1
| sudo chmod a+w /usr/local/Cellar |
这解决了我的问题,因为它只更改了错误消息中引用的特定路径的权限,似乎不太可能对其他安装产生负面影响。
我把这个答案放在这里,对于那些可能像我一样首先找到这个页面的人。但是,应该归功于jdi。
-
这是不安全的,因为现在每个人都可以写信给/ usr / local / Cellar?
-
对于需要访问其他文件夹(例如/usr/local/bin)的软件包,此答案失败。
您只能允许管理员用户写入/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组的用户,都可以安装新的依赖项。
-
对于多管理员计算机来说看起来是一个更好的解决方案(虽然我的/ usr / local / lib目录也需要g + x才能运行aspell)。
-
为了避免获得"The"brew链接"步骤未成功完成"错误,您还可以应用此线程中的内容,即sudo chgrp -R admin /usr/local/DDDD + sudo chmod -R g+w /usr/local/DDDD其中DDDD为bin,share,Library / LinkedKegs,opt
-
对于anwer的Thnx,我不得不使用"sudo",所以如果这些命令不起作用,请尝试用sudo作为前缀
在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目录所需权限的更改。
-
我使用了一个脚本并安装了它,但它仍然有更新问题。我将用户数据迁移到新的笔记本电脑上。不得不从github b / c做一些解决方法,脚本最初没有工作。
编辑:正如评论中提到的,使用sudo与自制软件是一个坏主意,所以不要使用以下答案!
如果使用sudo执行命令,也可以防止此错误:
1
| $ sudo brew install wget |
但要注意使用sudo因为你可以犯很多错误。
-
这种方法因为不允许以root用户身份调用(通过sudo)的自制程序的后期版本而失败。
-
使用sudo运行homebrew命令总是一个坏主意