Как установить и использовать Homebrew в Linux
Установите Homebrew в Linux, настройте PATH, управляйте пакетами, используйте Brewfile и узнайте о поддержке Linux, WSL и изменениях Homebrew 7.0.
Чтобы установить Homebrew в Linux, установите средства сборки вашего дистрибутива, запустите официальный установочный скрипт с brew.sh, добавьте brew shellenv в файл инициализации оболочки и выполните brew doctor для проверки конфигурации.
В Ubuntu LTS версии neovim или gh нередко отстают на год от тех, что стоят у вас на Mac, а собирать их из исходников каждый раз быстро надоедает. Homebrew предоставляет актуальные версии в префиксе, принадлежащем пользователю, а один Brewfile может описывать обе машины. В этом руководстве описан путь от установки до повседневной работы, а также рассмотрены Brewfile, изменения для Linux в Homebrew 7.0, WSL и удаление Homebrew.
Ключевые выводы
- Homebrew в Linux устанавливается в
/home/linuxbrew/.linuxbrewи использует из хост-системы только glibc и gcc, да и то лишь при достаточно свежих версиях. - В Debian/Ubuntu перед установкой нужны пакеты
build-essential procps curl file git. В Fedora — группаdevelopment-tools, а такжеprocps-ng curl file. - Brewfile — это код на Ruby, поэтому условие
if OS.linux?илиif OS.mac?в строке позволяет использовать один файл на обеих платформах. - В Homebrew 7.0 песочница Bubblewrap заменена механизмом ядра Landlock, поэтому дополнительно ничего устанавливать не нужно.
- В Windows Homebrew работает только внутри WSL 2. WSL 1 относится к Tier 3, а нативная Windows не поддерживается.
Когда в Linux стоит использовать Homebrew вместо apt или dnf?
Используйте Homebrew для консольных утилит, которые нужны вам в более новых версиях, чем те, что есть в репозиториях дистрибутива. Драйверы, системные библиотеки, серверные демоны и всё, от чего зависят другие системные пакеты, оставьте apt, dnf или pacman. Как поясняется в документации Homebrew on Linux, Homebrew полагается на хост-систему только в части glibc и gcc, и только если их версии достаточно свежие. В старых дистрибутивах он приносит собственные копии обоих компонентов. Благодаря этому пакеты Homebrew устанавливаются параллельно системным, никак их не затрагивая.
| Homebrew подходит для | apt / dnf / pacman подходят для |
|---|---|
| актуальных версий node, gh, ripgrep, neovim | драйверов GPU, модулей ядра |
| пользовательских установок в одном префиксе | общих системных библиотек |
| Brewfile, общего с вашим Mac | серверных пакетов под управлением systemd |
| всего, от чего зависят другие системные пакеты |
Требования и средства сборки
Homebrew нужен работающий системный компилятор C и стандартные средства разработки вашего дистрибутива. Установите их через системный пакетный менеджер до запуска установщика Homebrew:
# Debian / Ubuntu
sudo apt-get install build-essential procps curl file git
# Fedora
sudo dnf group install development-tools
sudo dnf install procps-ng curl file
# Arch Linux
sudo pacman -S base-devel procps-ng curl file git
Требования Homebrew on Linux включают работающий системный компилятор C и стандартные средства разработки дистрибутива, поэтому установите их заранее, даже если впоследствии Homebrew добавит собственный gcc.
Документ Support Tiers относит к Linux Tier 1 конфигурации, удовлетворяющие всем следующим условиям:
- Ubuntu в пределах стандартного срока поддержки или Docker-образ Homebrew;
- системная glibc версии 2.39 или новее;
- ядро версии 3.2 или новее;
- ARM64 или x86_64 с поддержкой SSSE3;
- префикс по умолчанию или совместимый пользовательский префикс;
- установка из bottles (готовых бинарных пакетов).
Хосты на Debian, Fedora и Arch не относятся к Tier 1. В системах с glibc от 2.13 до 2.38 (Tier 2) Homebrew устанавливает собственную glibc. Возможности на других платформах ограниченнее: 32-битные ARM-платы, такие как Raspberry Pi, не получают bottles и относятся к Tier 3, а 32-битная архитектура x86 не поддерживается вовсе.
Установка Homebrew и добавление в PATH
Запустите установщик с brew.sh от имени обычного пользователя, а не root:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
Установщик разворачивает Homebrew в /home/linuxbrew/.linuxbrew. Префикс по умолчанию обеспечивает наиболее надёжную поддержку bottles. Параметр установщика --path принимает пользовательский префикс длиной не больше префикса по умолчанию (26 байт), однако в примечаниях к выпуску Homebrew 7.0.0 нестандартные префиксы пока по-прежнему значатся как неподдерживаемые, поэтому без веской причины оставайтесь на префиксе по умолчанию.
Затем загрузите Homebrew в текущую оболочку и сделайте настройку постоянной:
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"' >> ~/.bashrc
Если вы используете zsh, добавьте эту строку в ~/.zshrc. Настройка shellenv для обеих оболочек описана на странице документации по Linux.
После этого проверьте установку:
brew doctor
brew install hello
brew doctor сообщает о проблемах конфигурации. В старых дистрибутивах первая команда brew install заодно устанавливает собственные glibc и gcc от Homebrew.
Установка пакетов и их обновление
Устанавливайте пакеты командой brew install, обновляйте метаданные пакетов Homebrew командой brew update, а установленные пакеты — командой brew upgrade:
brew install gh ripgrep neovim node
brew update # refresh Homebrew and package metadata
brew upgrade # upgrade installed packages
Никогда не ставьте sudo перед командой brew. Всегда запускайте brew от имени учётной записи, которой принадлежит префикс. Установщик и этап установки средств сборки могут запрашивать повышенные привилегии, но повседневная установка и обновление выполняются от имени вашего пользователя. Все подкоманды и флаги перечислены в справке brew (manpage).
Общая конфигурация Homebrew для Linux и Mac с помощью Brewfile
Brewfile содержит список пакетов, которые должны быть на машине, а brew bundle устанавливает всё недостающее. Brewfile интерпретируется как код на Ruby, поэтому к любой строке можно добавить условие по платформе:
# Brewfile
brew "git"
brew "gh"
brew "neovim"
brew "node"
if OS.mac?
cask "firefox"
end
brew "gnupg" if OS.mac?
Аналогично работает if OS.linux? для строк, предназначенных только для Linux. В документации по Brewfile отмечается, что в Linux brew bundle list не выведет gnupg, если он ограничен условием OS.mac?. Некоторые casks работают в Linux, но casks, предназначенные только для macOS, следует закрывать условием.
Создание, применение и проверка Brewfile:
brew bundle dump --file=~/dotfiles/Brewfile --force # snapshot what's installed
brew bundle install --file=~/dotfiles/Brewfile # install/upgrade to match
brew bundle check --file=~/dotfiles/Brewfile || brew bundle install --file=~/dotfiles/Brewfile
brew bundle dump сохраняет установленные формулы, casks, tap-репозитории и пакеты других поддерживаемых типов в виде Brewfile. Строка check || install идемпотентна, поэтому её можно смело добавлять в bootstrap-скрипты. Добавьте --verbose к check, чтобы увидеть, какие записи не выполнены.
Brewfile фиксирует, какие пакеты вам нужны, но не их версии. Homebrew всегда переходит на последний выпуск каждого пакета, поэтому запросить у него произвольную старую версию нельзя, а у brew bundle нет lock-файла. Чтобы brew bundle не обновлял установленные зависимости, передайте --no-upgrade или задайте HOMEBREW_BUNDLE_NO_UPGRADE=1. Это не закрепляет версии.
Будьте осторожны с brew bundle cleanup --force: эта команда удаляет всё, что не указано в Brewfile.
Что меняет Homebrew 7.0 в Linux?
Homebrew 7.0, выпущенный 13 сентября 2026 года, использует для песочницы в Linux механизм ядра Landlock. В примечаниях к выпуску 7.0.0 поясняется, что версия 7.0.0 отказывается от песочницы Bubblewrap, добавленной в Homebrew 6.0.0, в пользу Landlock, которому не нужны ни дополнительные пакеты, ни повышенные привилегии Docker. Landlock — это механизм ядра, позволяющий непривилегированному процессу ограничивать собственный доступ к ресурсам.
| Изменение | Что делать |
|---|---|
| Landlock заменяет Bubblewrap | Ничего устанавливать не нужно |
| Ядро не поддерживает Landlock | Сборки выполняются без песочницы, а brew doctor выводит предупреждение |
HOMEBREW_SANDBOX_LINUX | Отключена. Удалите её из rc-файла оболочки |
HOMEBREW_NO_SANDBOX_LINUX | Объявлена устаревшей и будет удалена 2027-12-11; альтернативного способа отключения не предусмотрено |
| ARM64 Linux | Tier 1 начиная с Homebrew 5.0.0 |
Согласно примечаниям к выпуску, Homebrew работает с Landlock ABI 2, доступным в Linux 6.1, и выводит предупреждение, если ядро не может применять сетевые ограничения. Чтобы проверить свою машину:
uname -r # kernel version
brew config # 7.0 reports the Landlock ABI here
brew doctor # shows an advisory if the sandbox is unavailable
grep -n HOMEBREW_SANDBOX_LINUX ~/.bashrc ~/.zshrc
Работает ли Homebrew в Windows?
В Windows Homebrew работает только через WSL 2. WSL 1 относится к платформам Tier 3, а нативная Windows не поддерживается. Документация по Linux предупреждает, что в WSL 1 некоторые исполняемые файлы, устанавливаемые Homebrew, могут работать некорректно из-за известных проблем WSL 1, и рекомендует перейти на WSL 2. Установите дистрибутив по руководству Microsoft по WSL, а затем выполните внутри него описанные выше шаги для Linux.
Как удалить Homebrew?
Чтобы удалить Homebrew, воспользуйтесь скриптом удаления из репозитория Homebrew/install. Актуальная команда и её параметры приведены в README.
Итак, настройка Homebrew в Linux сводится к четырём шагам: установить средства сборки, запустить скрипт с brew.sh, добавить shellenv в rc-файл оболочки и выполнить brew doctor. После этого запустите brew bundle dump на Mac, добавьте if OS.mac? к строкам, предназначенным только для macOS, и выполните brew bundle install на Linux-машине, чтобы на обеих был одинаковый набор инструментов.
Часто задаваемые вопросы
Можно ли установить Homebrew в Linux без sudo или прав root?
Да, если префикс доступен для записи вашей учётной записи. Установщику нужны права на запись в префикс, поэтому либо попросите администратора создать /home/linuxbrew/.linuxbrew и передать вам права владельца, либо укажите через параметр установщика --path совместимый пользовательский префикс длиной не более 26 байт. После такой настройки установка и обновление формул никогда не требуют sudo.
Предоставляет ли Homebrew по-прежнему bottles для Ubuntu 22.04?
В Ubuntu 22.04 используется glibc 2.35, поэтому она относится к платформам Tier 2 с тех пор, как Homebrew 6.0.0 поднял базовые требования для Linux до glibc 2.39. Homebrew больше не собирает новые bottles для таких систем, устанавливает собственную glibc, а brew doctor выводит предупреждение о поддержке. Для поддержки уровня Tier 1 обновитесь до Ubuntu 24.04 или используйте Docker-образ ghcr.io/homebrew/brew.
Можно ли устанавливать casks Homebrew в Linux?
Некоторые casks работают. В Homebrew 4.5.0 появилась предварительная поддержка casks в Linux, которая в основном распространяется на шрифты, например font-fira-code, и на casks, поставляющие бинарные файлы для Linux. В Homebrew 6.0.0 добавлена поддержка AppImage. Casks, содержащие только приложение для macOS, в Linux не установятся, поэтому в общем Brewfile закрывайте такие строки условием if OS.mac?.
Какой Docker-образ использовать для запуска Homebrew в Linux в CI?
Используйте ghcr.io/homebrew/brew. В Homebrew 7.0.0 образ ghcr.io/homebrew/ubuntu22.04 удалён, а в качестве замены указан ghcr.io/homebrew/brew. Согласно Support Tiers, Docker-образы от Homebrew считаются конфигурацией Linux уровня Tier 1, что делает их надёжным выбором для CI-сборок, которым нужны bottles. Если пайплайн всё ещё ссылается на образ ubuntu22.04, переключите его на ghcr.io/homebrew/brew.