【问题标题】:Homebrew multi user setupHomebrew 多用户设置
【发布时间】:2015-04-17 20:52:45
【问题描述】:

我试图为多个用户修复我的 Homebrew 安装,并找到了一个 guide on 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 解决此问题,我必须再次运行 chgrpchmod(如上所述)。然而,这种解决方法并没有真正受到赞赏,因为我不想在我的用户帐户之间来回切换时“随机”运行所有命令。

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

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

【问题讨论】:

  • 刚刚找到brewdo - sudo 和 brew 的组合。然而,它对我来说太“hacky”了。我使用bork(一个简洁的 DSL)来管理我的 brew 公式,不幸的是,那里也不支持 brewdo。
  • 您链接的网站在 2020 年是死链接。

标签: macos homebrew homebrew-cask


【解决方案1】:

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

注意

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

我还使用Cakebrew 来管理 配置正在运行。我确实注意到了一个警告,如果用户 A 有 文件被锁定,他们需要运行 brew cleanup 才能清理 为用户 B 冲泡。

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

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

设置

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

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

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

【讨论】:

    【解决方案2】:

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

    适用于 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
    

    【讨论】:

    • 您需要在将自己添加到 brew 组和运行 brew doctor 之间启动一个新的 shell,以便您的组更新。
    【解决方案3】:

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

    sudo chgrp -R brew /usr/local/Cellar
    sudo chmod -R g+w /usr/local/Cellar
    

    【讨论】:

      【解决方案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 工作正常。

      【讨论】:

      • 这似乎对我有用,但执行brew update我似乎只能由所有者出于某种原因。有什么想法吗?
      • 另外,可能值得为此答案添加更新,因为他们现在已将目录更改为 /usr/local
      猜你喜欢
      • 2017-06-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-13
      • 2018-09-04
      • 1970-01-01
      相关资源
      最近更新 更多