18

我试图为多个用户修复我的 Homebrew 安装,并在 strug.de 上找到了一个指南,旨在解决这个问题。

我创建了一个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

假设我在登录用户帐户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'
[...]

要为用户B解决此问题,我必须再次运行chgrp's 和chmod's(如上所述)。然而,这种解决方法并不是很受欢迎,因为我不想在我的用户帐户之间来回切换时“随机”运行所有命令。

根据指南,我有什么遗漏或做错了吗?

我不确定指南的作者是如何解决这个问题的。

4

4 回答 4

16

我从几篇文章中拼凑出以下内容,因为我无法在一个地方找到所需的所有内容,例如用于创建组的命令。

在 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
于 2019-06-20T13:02:58.950 回答
6

必须为我在Catalina 10.15.2上的设置执行此操作,并按照以下步骤操作:

笔记

我使用系统偏好设置中的用户和组设置来制作 brew 组(创建新帐户时选择组)。我向组添加了执行权限,以便我可以作为非管理员用户访问 dart2native 可执行文件。

在配置运行后,我还使用Cakebrew来管理所有公式。我确实注意到一个警告,如果用户 A 锁定了一个文件,他们将需要运行 brew cleanup 以便为用户 B 获得一个干净的 brew。

使用时brew cask install <appname>- 如果其中一位用户不是管理员,您可能会遇到问题,在这种情况下,管理员用户可能需要进行安装。

除了这些警告之外,一切似乎都运行良好。

设置

(假设 Allen 是管理员而 Stan 不是)

  • 创建一个集体酿造并添加艾伦和斯坦
  • brew doctor (Allen 检查他是否正确安装了 brew)
  • sudo chgrp -R brew $(brew --prefix)/* (改变homebrew安装目录的组)
  • sudo chmod -R g+w+x $(brew --prefix)/* (允许组成员在此目录内读取、写入和执行)
  • brew doctor(斯坦检查他是否可以使用自制软件)

(来源:https ://medium.com/@leifhanack/homebrew-multi-user-setup-e10cb5849d59 )

于 2019-11-12T05:49:19.063 回答
4

我知道这个问题有点老了,但我的回答可以帮助到这里寻求帮助的其他人。

帮助我解决这个问题的原因是,homebrew-cask for multiple users 也设置了 Caskroom 文件夹的权限:

sudo chgrp -R brew /opt/homebrew-cask/Caskroom
sudo chmod -R g+w /opt/homebrew-cask/Caskroom

然后brew cask install dropbox工作得很好。

于 2015-11-25T23:44:43.963 回答
1

除了格雷戈里奥的回答,我发现我还必须:

sudo chgrp -R brew /usr/local/Cellar
sudo chmod -R g+w /usr/local/Cellar
于 2017-07-13T20:08:30.967 回答