Homebrew install.sh without root

I installed Homebrew, a Mac package manager, recently on my main computer. I use macports for most of my package management needs, but brew just has many packages macports doesn’t. Anyway, homebrew installs packages as your user instead of the root permissions most package managers use. Except when installing itself, which uses root to set some permissions. If it needs to, that is. I didn’t want to give the install script root if I didn’t need to.

To make it not need to, you basically have to have permissions to write to the /usr/local and /usr/local/bin directories before running it. Assuming you are an administrator user, you can give the admin group ownership of directories, and then give the group write access to those directories. This will require root, but you can then run the install script without needing to enter your root password. With the current recommended install method, this would look like:

sudo chgrp admin /usr/local /usr/local/bin
sudo chmod g+w /usr/local /usr/local/bin
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"

You should probably verify that the last line is still the recommended install method.

If you can’t run as root at all, you can try their untar anywhere method of installation. I haven’t tried it though, and I’ve read it can cause problems for some packages.

Note: All bets are off with casks. vagrant, for example, requires root at the package level, and I haven’t figured out a way around this. Run sudo anything so you’ve already entered your password before running brew, eg sudo printf 'now brew\n--------\n' && brew upgrade.