В Homebrew 5.0.4 появилась поддержка Flatpack, что делает пакетный менеджер практически универсальным установщиком инструментов. Теперь один файл Brewfile можно использовать для автоматической настройки окружения на macOS, Linux и в WSL.

В версии 5.0.4 в один сценарий установки можно включить пакеты Homebrew, приложения из Cask, из Mac App Store, расширения для Visual Studio Code, пакеты для Go и Flatpack-приложения с их репозиториями. Вот так это выглядит в едином Brewfile:

tap "apple/apple"
brew "apple/apple/game-porting-toolkit"
brew "postgresql@16", restart_service: true
cask "firefox"
mas "Refined GitHub", id: 1519867270
vscode "editorconfig.editorconfig"
go "github.com/charmbracelet/crush"
flatpak "com.visualstudio.code"
flatpak "org.godotengine.Godot", remote: "flathub-beta", url: "https://dl.flathub.org/beta-repo/"
flatpak "io.github.dvlv.boxbuddyrs", remote: "flathub-beta"

При запуске результат работы файла будет таким:

$ brew bundle
Using apple/apple
Using apple/apple/game-porting-toolkit
Using postgresql@16
Using firefox
Using Refined GitHub
Using editorconfig.editorconfig
Using github.com/charmbracelet/crush
`brew bundle` complete! 7 Brewfile dependencies now installed.

В перспективе это позволяет создавать универсальные Brewfile для установки софта на macOS, Linux и WSL. Вместо трёх отдельных сценариев — один декларативный файл со списком нужных пакетов, который сработает на разных системах и установит всё необходимое. Пользователи Linux, в свою очередь, могут перейти на Homebrew, чтобы не писать и поддерживать bash-скрипты.

Также важно отметить, что в Homebrew всё ещё нет поддержки Snap. В 2019 году разработчики обсуждали реализацию, но пока интеграции нет.