Does Homebrew offer anything similar to pip's pip install -r requirements.txt
feature? I have a new MacBook Pro arriving today, so one of the first tasks will be to migrate my brew installations. I've already performed a brew list > brew.txt
command. Will I be able to use this to install all the packages it lists in one command on the new machine?
Asked
Active
Viewed 2.2k times
26

Chuck
- 1,780
3 Answers
43
brew leaves > my_brew.txt
xargs brew install < my_brew.txt
Use xargs instead of a for loop to avoid IFS.

nohillside
- 100,768

grg
- 201,078
-
3Currently the best answer bc it doesn't require any additional libs being installed to use. – jasonleonhard Apr 23 '19 at 22:42
24
You can do brew leaves > my_brews.txt
and then on the new machine do
for i in $(cat brew_leaves); do; brew install "$i"; done
. You can use newlines where there are semicolons above. [assuming bash]
-
9Would
brew install $(cat my_brews.txt)
not accomplish the same in one single invocation ofbrew
, without the need of afor
loop? – Synoli Apr 08 '17 at 16:36 -
I think the newlines in my_brews.txt would mess you up. Have you tried this? – MERM Apr 08 '17 at 16:39
-
1Yes, works either way for me. Bash scans the results of the
$(cat
…)
parameter expansion and then uses either of the space, newline, and tab characters to split words as if they were all the same (unless you have set some weird value forIFS
, in which case either approach would fail). – Synoli Apr 08 '17 at 16:52 -
while read formula; do brew install "$formula"; done < my_brews.txt
avoids the useless use of cat. – nohillside Apr 11 '22 at 09:38
15
MERM provided a working answer, but others may be interested in a solution that, while not included with Homebrew, is published by the same people. Homebrew bundle is a brew package that is designed for this purpose, also handling casks and, I think, Mac App Store apps (with the mas package).

Chuck
- 1,780
-
8Just an addition to this, you can use
brew bundle dump
to create a file of everything that you have installed currently, transfer the output file to another computer, and runbrew bundle
to install everything. – Mike Lewis Apr 08 '17 at 22:13 -
1This comment should be the answer:
brew bundle dump
andbrew bundle
are just what I needed! – silvansky Apr 10 '18 at 09:52 -
1I concur that brew bundle is now the way to go. I switched to this method myself. – MERM Apr 24 '20 at 02:22