macOSのHomebrewを複数ユーザーで共有して使うとつらいので,brewコマンドにaliasを貼る。 しかし,特定のコマンドを特定のユーザーとして実行する情報が見つからなかったのでメモ。
sudoers
man sudoers
のSUDOERS FILE FORMAT
の項目にEBNFによる形式の定義と解説がある。
%stuff ALL = (hogeuser) NOPASSWD: /opt/homebrew/bin/brew
各種シェルの設定
GNUなcoreutilsとかOpenJDKとかを使うなら追加で設定が必要。 しかしそれらはグローバルにすると色々アレなので後でユーザー単位で設定する。
とりあえずグローバルに設定すべきなのは以下のものだけ。
zsh
/etc/zshrc
に追記する。
## Homebrew
eval `/opt/homebrew/bin/brew shellenv`
export HOMEBREW_NO_ANALYTICS=1
export HOMEBREW_NO_AUTO_UPDATE=1
alias brew="sudo -Hu hogeuser brew"
fish
/opt/homebrew/etc/fish/conf.d/brew.fish
に書く。
eval (/opt/homebrew/bin/brew shellenv)
set -x HOMEBREW_NO_ANALYTICS 1
set -x HOMEBREW_NO_AUTO_UPDATE 1
alias brew="sudo -Hu hogeuser brew"
おまけ : 追加設定
とりあえず今の状態でもbrewコマンドは使えるはず。 僕はfishを使うので,おまけでその設定だけ。
if test -e /opt/homebrew/bin/brew
set BREW_PREF (/opt/homebrew/bin/brew --prefix)
end
fish_add_path -P \
$BREW_PREF/bin \
$BREW_PREF/sbin \
$BREW_PREF/opt/coreutils/libexec/gnubin