frd*_*dmn 13 macos homebrew homebrew-cask
我试图为多个用户修复我的Homebrew安装,并在strug.de(http://blog.strug.de/2012/06/my-homebrew-multi-user-setup/)上找到了一个指南,旨在解决正是这个问题.
我创建了一个brew用户组,在该组中添加了我的两个用户并运行它来调整权限:
sudo chgrp -R brew /usr/local
sudo chmod -R g+w /usr/local
sudo chgrp -R brew /Library/Caches/Homebrew
sudo chmod -R g+w /Library/Caches/Homebrew
sudo chgrp -R brew /opt/homebrew-cask
sudo chmod -R g+w /opt/homebrew-cask
Run Code Online (Sandbox Code Playgroud)
我们假设我在登录用户帐户A时这样做了.几天后,我登录用户帐户B并尝试通过Cask安装Dropbox.这就像一个魅力,因为我们之前修复了权限,因此Brew组也可以在这些文件夹中写入.
现在又过了几天,我又重新登录了账号A,想要摆脱Dropbox.我运行以下命令,但坚持使用权限错误:
$ brew cask install dropbox --force
==> Downloading https://www.dropbox.com/download?plat=mac&full=1
Already downloaded: /Library/Caches/Homebrew/dropbox-latest
==> Symlinking App 'Dropbox.app' to '/Users/friedmann/Applications/Dropbox.app'
Error: Permission denied - /opt/homebrew-cask/Caskroom/dropbox/.metadata/latest/20150217070443.598
Most likely, this means you have an outdated version of homebrew-cask. Please run:
brew update && brew upgrade brew-cask && brew cleanup && brew cask cleanup
If this doesn’t fix the problem, please report this bug:
https://github.com/caskroom/homebrew-cask/issues
/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/2.0.0/fileutils.rb:245:in `mkdir'
[...]
Run Code Online (Sandbox Code Playgroud)
要为用户B修复此问题,我必须再次运行chgrp's和chmod'(如上所述).但是,这种解决方法并不是很受欢迎,因为每当我在用户帐户之间来回切换时,我都不想"随机"运行所有命令.
根据指南,我有什么遗漏或者我做错了吗?
我不确定该指南的作者是如何解决这个问题的.
小智 15
我从几个帖子中拼凑了以下内容,因为我无法在一个地方找到所需的所有内容,例如用于创建组的命令。
在 macOS Mojave 10.14.4 (18E226) 上对我有用。
brew-multiuser.sh:
#!/bin/bash
# Create a new group, brew
sudo dseditgroup -o create brew
# Change owner to brew group on brew assets
sudo chgrp -R brew $(brew --prefix)/*
# Change permissions to brew group
sudo chmod -R g+w $(brew --prefix)/*
# Add a user to the brew group
sudo dseditgroup -o edit -a userOne -t user brew
# Add another user to the brew group
sudo dseditgroup -o edit -a userTwo -t user brew
# Validate links, etc.
brew doctor
# Make any corrections from the `brew doctor` warnings, such as relinking.
# Run brew doctor to validate fixes
brew doctor
# Make sure it's working without error, with an update
brew update
Run Code Online (Sandbox Code Playgroud)
必须为我在Catalina 10.15.2上的设置执行此操作,并遵循以下步骤:
笔记
我使用系统偏好设置中的用户和群组设置来制作冲煮组(创建新帐户时选择组)。我向该组添加了执行权限,以便我可以以非管理员用户身份访问 dart2native 可执行文件。
在配置运行后,我还使用Cakebrew来管理所有公式。我确实注意到一个警告,如果用户 A 锁定了文件,他们将需要运行 brew cleanup 以便为用户 B 获得干净的 brew。
使用时
brew cask install <appname>- 如果其中一个用户不是管理员,您可能会遇到问题,在这种情况下,管理员用户可能需要进行安装。除了这些警告之外,一切似乎都运行良好。
(假设 Allen 是管理员而 Stan 不是)
(来源:https : //medium.com/@leifhanack/homebrew-multi-user-setup-e10cb5849d59)
小智 4
我知道这个问题有点老了,但我的回答可以帮助其他来这里寻求帮助的人。
帮助我解决这个问题的是,针对多个用户的 homebrew-cask 还设置了 Caskroom 文件夹的权限:
sudo chgrp -R brew /opt/homebrew-cask/Caskroom
sudo chmod -R g+w /opt/homebrew-cask/Caskroom
Run Code Online (Sandbox Code Playgroud)
然后brew cask install dropbox工作得很好。