我有两台工程师共享的Mac.两者都有单独的用户帐户.两者都需要运行brew update
和brew install...
偶尔为之.
如何设置这没有得到这样的错误:
/usr/local must be writable!
?
是的,我可以UserA
接受/usr/local
每次他想使用brew 的权限(和相同UserB
),但这似乎是很多不必要的麻烦.
您还可以将组权限更改为管理员或您的两个用户所在的其他组:
chgrp -R admin /usr/local chmod -R g+w /usr/local
原始来源:https://gist.github.com/jaibeee/9a4ea6aa9d428bc77925
更新:
在macOS High Sierra中,您无法更改所有者,组或权限/usr/local
.因此,您必须更改子文件夹的组和权限:
chgrp -R admin /usr/local/* chmod -R g+w /usr/local/*
更新 2018年9月,High Sierra 10.13.6
确定brew前缀的路径,即.用于存储与使用homebrew相关的文件的路径
检查系统上需要访问权限的所有用户是否brew
都在admin组中
可选如果用户需要访问brew,则将用户添加到管理组
将需要访问/权限才能使用sudo命令
将brew前缀路径设置为由admin组递归拥有
将brew前缀路径设置为admin组中的所有用户可递归写入
验证brew前缀的权限
酿造
echo $(brew --prefix) echo $(groups $(whoami)) sudo dseditgroup -o edit -a $(whoami) -t user admin sudo chgrp -R admin $(brew --prefix) sudo chmod -R g+rwX $(brew --prefix) ls -lah $(brew --prefix)
Hombrew安装了软件包/usr/local
,没有打破它安装的许多软件包,你无能为力.为所有用户添加读写权限,如下所示:
sudo chmod -R +rw /usr/local
请注意,由于这是一个系统文件夹,所有用户将共享相同的brew安装.一个用户可以删除其他人安装的软件包,依此类推.所以一定要协调以避免问题.
这是user4815162342答案的编辑版本,开箱即用对我来说不起作用。
在“系统偏好设置”中,转到“用户和组”,单击左下角的锁定符号以解锁用户/组的创建,然后创建一个名为的新组brew-usergroup
。将所有使用brew的用户添加到组中(如附件中来自德国macOS的屏幕截图)。
在终端中,执行以下操作:
echo $(brew --prefix) echo $(groups $(whoami)) sudo dseditgroup -o edit -a $(whoami) -t user brew-usergroup sudo chgrp -R brew-usergroup $(brew --prefix)/* sudo chmod -R g+rwX $(brew --prefix)/* ls -lah $(brew --prefix)
请注意,这不再更改Brew文件夹的权限(就像在其他答案中一样),它更改了brew文件夹的子文件夹/文件。
brew install
现在应该可以正常工作而没有错误了。
上面的方法工作正常,但是如果您希望新文件自动继承那些权限,请设置一个继承的ACL(否则,只有倒瓶的用户才能删除它)。在这里找到了如何执行此操作的提示:https : //gist.github.com/nelstrom/4988643
由于root
运行一次(假设组“管理员”的所有用户都应该有机会获得):
cd /usr/local chmod -R +a "group:admin allow list,add_file,search,add_subdirectory,delete_child,readattr,writeattr,readextattr,writeextattr,readsecurity,file_inherit,directory_inherit" Homebrew Caskroom Cellar bin chgrp -R admin Homebrew Caskroom Cellar bin chmod -R g+rwX Homebrew Caskroom Cellar bin ls -lae .
在-e
上ls
节目的ACL。
更新:现在我使用特定的目录(见上文),因为它失败了(例如内存不足)