Как я могу установить все пакеты brew, перечисленные в текстовом файле?

8

Предлагает ли Homebrew что-то похожее на pip install -r requirements.txtфункцию pip ? Сегодня у меня новый MacBook Pro, поэтому одной из первых задач будет перенастроить мои установки brew. Я уже выполнил brew list > brew.txtкоманду. Смогу ли я использовать это для установки всех пакетов, перечисленных в нем, одной командой на новую машину?

цыпленок
источник

Ответы:

11

Можно brew leaves > my_brews.txtи дальше на новой машине делать for i in $(cat brew_leaves); do; brew install "$i"; done. Вы можете использовать переводы строк, где есть точки с запятой выше. [предполагая Баш]

MERM
источник
1
В листьях brew будут перечислены только те пакеты, которые вы добавили, а не другие, внесенные в качестве зависимостей
MERM
2
Не brew install $(cat my_brews.txt)удалось бы сделать то же самое в одном вызове brewбез необходимости forцикла?
Синоли,
Я думаю, что переводы строк в my_brews.txt могут вас испортить. Вы пробовали это?
MERM
1
Да, работает в любом случае для меня. Bash сканирует результаты раскрытия параметра $(cat)и затем использует символы пробела, новой строки и табуляции для разделения слов, как если бы они были одинаковыми (если только вы не установили какое-то странное значение IFS, в этом случае любой из подходов потерпит неудачу) ,
Синоли,
14
xargs brew install < brew.txt

Не нужно катать файл (см. « Бесполезное использование Cat Award» ) и использовать xargs вместо цикла for, чтобы избежать IFS.

Grg
источник
В настоящее время лучший ответ, поскольку он не требует установки каких-либо дополнительных библиотек.
Джейсон Леонард
11

MERM предоставил рабочий ответ, но другие могут быть заинтересованы в решении, которое, хотя и не входит в Homebrew, публикуется теми же людьми. Homebrew bundle - это пакет brew, предназначенный для этой цели, который также обрабатывает бочки и, как мне кажется, приложения Mac App Store (с пакетом mas ).

цыпленок
источник
5
В дополнение к этому вы можете использовать brew bundle dumpдля создания файла все, что вы установили в настоящее время, перенести файл вывода на другой компьютер и запустить, brew bundleчтобы установить все.
MPLewis
Этот комментарий должен быть ответом: brew bundle dumpи brew bundleэто именно то, что мне нужно!
Сильванский