Открыть сервис

Homebrew: менеджер пакетов для macOS

Homebrew — это менеджер пакетов с открытым исходным кодом для операционных систем macOS и Linux, предназначенный для установки, обновления и удаления программного обеспечения из командной строки. Проект, также известный как brew, позволяет пользователям устанавливать утилиты и приложения, которые не входят в стандартную поставку операционной системы, автоматизируя процесс загрузки, компиляции и разрешения зависимостей.

История

Homebrew был создан в 2009 году британским программистом Максом Хауэллсом. Первоначально проект развивался как хобби-разработка, но быстро приобрёл популярность среди разработчиков, которым требовался удобный инструмент для управления Unix-инструментами на macOS. Название «Homebrew» (с англ. — «домашнее пивоварение») отсылает к идее самостоятельной сборки программного обеспечения из исходного кода.

В 2012 году Хауэллс передал проект сообществу, и с тех пор Homebrew развивается при поддержке тысяч контрибьюторов. Крупным событием стало добавление поддержки Linux в 2014 году, после чего проект стал кроссплатформенным. В 2019 году была выпущена версия 2.0, которая включила поддержку сборки из исходников для Linux и Windows (через подсистему WSL). В 2021 году вышла версия 3.0, ознаменовавшая переход на новые стандарты управления формулами.

Архитектура и принципы работы

Homebrew написан на языке Ruby и использует систему «формул» (formulae) — Ruby-скриптов, которые описывают, как скачать, скомпилировать и установить конкретную программу. Каждая формула содержит метаданные: URL исходного кода, контрольные суммы, зависимости, параметры сборки и инструкции по установке.

Основные компоненты системы:

  • Формулы (formulae) — описания пакетов для установки утилит и библиотек.
  • Кеги (casks) — описания установки готовых приложений (графических программ), распространяемых в виде бинарных сборок (например, .dmg или .pkg).
  • Тапы (taps) — дополнительные репозитории с формулами, которые можно подключать к основной системе.
  • Бутылки (bottles) — предварительно собранные бинарные пакеты, которые загружаются вместо компиляции из исходного кода для ускорения установки.

По умолчанию Homebrew устанавливает пакеты в каталог /usr/local на Intel-макбуках и в /opt/homebrew на компьютерах с процессорами Apple Silicon. Такой подход позволяет не требовать прав суперпользователя для большинства операций, поскольку каталог принадлежит пользователю. Установка в системные каталоги, такие как /usr/bin, не производится, что снижает риск конфликтов с системными библиотеками.

Основные команды

Работа с Homebrew осуществляется через команду brew. Наиболее часто используемые команды включают:

  • brew install <пакет> — установка пакета;
  • brew uninstall <пакет>удаление пакета;
  • brew update — обновление списка доступных формул;
  • brew upgrade — обновление установленных пакетов до последних версий;
  • brew search <запрос> — поиск пакета по имени;
  • brew info <пакет> — отображение информации о пакете;
  • brew list — вывод списка установленных пакетов;
  • brew cleanup — удаление устаревших версий и временных файлов;
  • brew doctorдиагностика состояния установки Homebrew.

Команда brew services позволяет управлять фоновыми службами, запуская или останавливая их и настраивая автозапуск при входе в систему.

Экосистема и применение

Homebrew является стандартом де-факто для управления пакетами в среде разработки на macOS. С его помощью устанавливаются компиляторы (gcc, clang), интерпретаторы языков (Python, Ruby, Node.js), базы данных (PostgreSQL, MySQL), сетевые утилиты (curl, wget), системы контроля версий (Git, Mercurial) и тысячи других программ.

Проект также включает поддержку установки полноценных графических приложений через механизм casks. Например, командой brew install --cask google-chrome можно установить браузер Google Chrome. По состоянию на 2024 год в репозитории Homebrew насчитывается более 6 000 формул и более 6 000 кегов.

Отдельным направлением является проект Linuxbrew (ныне Homebrew on Linux), который предоставляет аналогичную функциональность для дистрибутивов Linux. Хотя в Linux существуют собственные менеджеры пакетов (apt, yum, pacman), Homebrew часто используется для установки свежих версий программ, недоступных в официальных репозиториях.

Критика и ограничения

Homebrew подвергается критике по нескольким направлениям. Во-первых, установка программ в отдельный каталог может приводить к конфликтам с системными библиотеками, особенно если пользователь вручную добавляет пути в переменную окружения PATH. Во-вторых, при установке большого количества пакетов каталог Homebrew разрастается, а процесс обновления может требовать значительного времени. В-третьих, проект зависит от активности мейнтейнеров: если формула для конкретной программы не обновляется, установка может завершиться ошибкой при выходе новой версии зависимостей.

Дополнительной проблемой является то, что Homebrew не поддерживает параллельную установку нескольких версий одной программы без дополнительных ухищрений (например, через versioned formulae). Это ограничивает гибкость по сравнению с менеджером пакетов Nix или MacPorts, которые позволяют сосуществование разных версий.

Альтернативы

На macOS существуют альтернативные менеджеры пакетов. MacPorts — более старый проект, который компилирует программы из исходного кода и устанавливает их в каталог /opt/local. Fink предоставляет систему, основанную на dpkg и apt. Однако Homebrew остаётся наиболее популярным благодаря простоте использования, активному сообществу и широкому охвату пакетов. В среде разработчиков также набирают популярность менеджеры пакетов, работающие на основе контейнеризации, такие как Docker, и изолированные менеджеры окружений для конкретных языков (pip, npm, gem).

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →