12k
All articles

Как установить и использовать Homebrew в Linux

Установите Homebrew в Linux, настройте PATH, управляйте пакетами, используйте Brewfile и узнайте о поддержке Linux, WSL и изменениях Homebrew 7.0.

OpenReplay Team
OpenReplay Team
Как установить и использовать Homebrew в Linux

Чтобы установить 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 LinuxTier 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.

Understand every bug

Uncover frustrations, understand bugs and fix slowdowns like never before with OpenReplay — self-hosted, with full data ownership.

Star on GitHub

We use cookies to improve your experience. By using our site, you accept cookies.