Многопользовательская настройка Homebrew

Я пытался исправить мою установку Homebrew для нескольких пользователей и нашел руководство по fight.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

Предположим, что я сделал это во время входа в учетную запись пользователя A. Через несколько дней я зарегистрировался в учетной записи пользователя B и попытаюсь установить Dropbox через Cask. Это работает как прелесть, поскольку мы исправили разрешения раньше, поэтому группе 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 и chmod (как указано выше). Однако это обходное решение не очень ценится, так как я не хочу "случайно" запускать все команды всякий раз, когда я переключаюсь между моими учетными записями пользователей.

Есть ли что-то, чего я не вижу, или что я ошибался в соответствии с руководством?

Я не уверен, как автор руководства решил это.

Ответ 1

Я знаю, что этот вопрос немного стар, но мой ответ может помочь другим, которые приходят сюда искать помощи.

Что помогло мне преодолеть эту проблему, домашняя бочка для нескольких пользователей, также установила разрешения для папки Caskroom:

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

Тогда brew cask install dropbox работал отлично.

Ответ 2

В дополнение к ответу Грегорио, я обнаружил, что должен также:

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

Ответ 3

Я собрал следующее из нескольких постов, так как не смог найти все необходимое в одном месте, например команду для создания группы.

У меня работает на macOS Мохаве 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 working without error, with an update
brew update