Homebrew with multiple users

I’m a great fan of homebrew, the package manager for OS X that gives access to a raft of useful tools. However, it’s designed for a single user, really, which is OK for a developer’s laptop but less cool for a shared computer or one that uses network accounts. For these cases, here’s a solution.

I make the assumption here that you have the developer tools installed and know your way around the OS X Terminal/iTerm/etc.

Create a separate user account for homebrew, for example brew. Give it a home directory of /usr/local, make the UID less than 500 (such as 401) and hide this user from the graphical logins. The following script does that lot for you.

#!/bin/bash
dscl . create /Users/brew
dscl . create /Users/brew RealName "Homebrew"
dscl . create /Users/brew Password '*' 
dscl . create /Users/brew UniqueID 401 
dscl . create /Users/brew PrimaryGroupID 80
dscl . create /Users/brew UserShell /bin/bash
dscl . create /Users/brew NFSHomeDirectory /usr/local
cp -R /System/Library/User\ Template/English.lproj /usr/local
dseditgroup -o edit -a brew -t user staff
chown -R brew:staff /usr/local

To hide the new user, run this as root:

defaults write /Library/Preferences/com.apple.loginwindow Hide500Users -bool YES