Советы и рекомендации
Установка предыдущих версий формул
Некоторые формулы в homebrew/core доступны в виде формул с версиями и используют специальный формат именования, например gcc@9. Если нужной вам версии нет, см. раздел Закрепление установленных формул за определёнными версиями.
Быстрое удаление чего-либо из префикса Homebrew
brew unlink <formula>
Это может быть полезно, если пакет не удаётся собрать с версией чего-либо, которая связана с префиксом Homebrew.
И, конечно, после этого можно просто снова brew link <formula>!
Предварительная загрузка файла для формулы
Иногда файл можно скачать быстрее с помощью способов, отличных от доступных в Homebrew. Например, Erlang предоставляет торрент, который позволяет скачивать в 4–5 раз быстрее, чем обычным способом по HTTP.
Загрузки сохраняются в подкаталоге downloads каталога кэша Homebrew (указанного в brew --cache, например ~/Library/Caches/Homebrew) и переименовываются в <url-hash>--<formula>-<version>. Команда brew --cache --build-from-source <formula> выводит ожидаемый путь к загруженному файлу в кэше, поэтому после скачивания файла можно выполнить mv the_tarball "$(brew --cache --build-from-source <formula>)", чтобы переместить его в кэш.
Также можно предварительно поместить загрузку в кэш с помощью команды brew fetch <formula>, которая также выводит её хеш SHA-256. Это может быть полезно при обновлении формул до новых версий.
Установка программ без Xcode CLT
brew sh # or: eval "$(brew --env)" gem install ronn # or c-programs
Эта команда импортирует окружение brew в текущую оболочку; gem подхватит переменные окружения и сможет выполнить сборку. В качестве бонуса устанавливаются автоматически определённые флаги оптимизации brew.
Установка только зависимостей формулы (без самой формулы)
brew install --only-dependencies <formula>
Запуск скрипта с формулами Homebrew в PATH
Используйте brew exec, чтобы установить формулы, необходимые скрипту, и запустить его, добавив каталоги с исполняемыми файлами этих формул в PATH:
brew exec --formulae=jq,yq -- ./script.sh
Передайте список формул, разделённых запятыми, с помощью --formulae, а затем укажите команду и её аргументы после --. Homebrew устанавливает отсутствующие формулы, добавляет в начало bin и sbin, а также пути соответствующих зависимостей, после чего заменяет себя указанной командой. В качестве команды можно указать путь; это удобно для переносимых скриптов, демонстраций и кода первоначальной настройки CI, которым нужны инструменты Homebrew без записи Brewfile.
В системах с env -S скрипт может указать это в строке shebang:
#!/usr/bin/env -S brew exec --formulae=jq,yq --
Использование интерактивной оболочки Homebrew
$ brew irb
==> Interactive Homebrew Shell
Example commands available with: `brew irb --examples`
brew(main):001> Formulary.factory("ace").methods - Object.methods
=>
[:test,
:install,
:valid_platform?,
...
:debug?,
:verbose?,
:quiet?]
[:install, :test, :test_defined?, :sbin, :pkgshare, :elisp,
brew(main):002> Скрытие эмодзи пивной кружки по завершении сборки
export HOMEBREW_NO_EMOJI=1
Это задаёт переменную окружения HOMEBREW_NO_EMOJI, заставляя Homebrew скрывать все эмодзи.
Эмодзи пива также можно заменить другим символом или символами:
export HOMEBREW_INSTALL_BADGE="☕️ 🐸"
Перенос установки Homebrew в новое расположение
Выполнение brew bundle dump сохранит сведения об установке в Brewfile, а brew bundle install установит её из Brewfile. Подробнее см. brew bundle --help.
Передача вручную установленного приложения под управление Homebrew Cask
Запустите brew install --cask с параметром --adopt:
$ brew install --cask --adopt textmate ==> Downloading https://github.com/textmate/textmate/releases/download/v2.0.23/TextMate_2.0.23.tbz ... ==> Installing Cask textmate ==> Adopting existing App at '/Applications/TextMate.app' ==> Linking Binary 'mate' to '/opt/homebrew/bin/mate' 🍺 textmate was successfully installed!
Создание псевдонимов для команд Homebrew
Используйте brew alias, чтобы создавать пользовательские команды, запускающие другие команды в brew или вашей оболочке, подобно встроенной команде оболочки alias.
# Add aliases $ brew alias ug='upgrade' $ brew alias i='install' # Print all aliases $ brew alias # Print one alias $ brew alias i # Use your aliases like any other command $ brew i git # Remove an alias $ brew unalias i # Aliases can include other aliases $ brew alias show='info' $ brew alias print='show' $ brew print git # will run `brew info git`
Обратите внимание: имена стандартных команд Homebrew нельзя использовать в качестве псевдонимов.
Перед всеми командами-псевдонимами добавляется brew, если только они не начинаются с ! или %:
$ brew alias ug='upgrade' # `brew ug` → `brew upgrade` $ brew alias status='!git status' # `brew status` → `git status`
Возможно, потребуется использовать одинарные кавычки, чтобы оболочка не интерпретировала !, однако % работает с кавычками обоих типов.
# Use shell expansion to preserve a local variable $ mygit=/path/to/my/git $ brew alias git="%$mygit" # `brew git status` → `/path/to/my/git status`
Псевдонимы можно открыть в $EDITOR с помощью флага --edit.
# Edit alias 'brew foo', creating if necessary $ brew alias --edit foo # Create and edit alias 'brew foo' $ brew alias --edit foo=bar # This works too $ brew alias foo --edit $ brew alias foo=bar --edit # Open all aliases in $EDITOR $ brew alias --edit
Плагины для редакторов
Visual Studio Code
-
Brewfile добавляет подсветку синтаксиса Ruby для файлов
Brewfileвbrew bundle. -
Brew Services — расширение для запуска и остановки служб Homebrew.
Sublime Text
- Homebrew-formula-syntax можно установить с помощью Package Control в Sublime Text 2/3; оно добавляет подсветку встроенных патчей.
Vim
- brew.vim добавляет подсветку встроенных патчей в Vim.
Emacs
-
homebrew-mode обеспечивает подсветку синтаксиса встроенных патчей, а также предоставляет ряд вспомогательных функций для редактирования файлов формул.
-
pcmpl-homebrew обеспечивает автодополнение для emacs shell-mode и eshell-mode.
macOS Terminal.app: включение пункта контекстного меню «Открыть страницу man»
В Терминале macOS можно щёлкнуть правой кнопкой мыши по имени команды (например, ls или tar) и открыть её страницу man в новом окне, выбрав пункт «Открыть страницу man».
Терминалу нужна дополнительная подсказка, где искать установленные Homebrew страницы man, поскольку он не загружает обычные файлы dotfiles, такие как ~/.bash_profile или ~/.zshrc.
sudo mkdir -p /usr/local/etc/man.d echo "MANPATH $(brew --prefix)/share/man" | sudo tee -a /usr/local/etc/man.d/homebrew.man.conf
Если вы используете Homebrew на Mac с процессором Intel, после этого также следует исправить разрешения:
sudo chown -R "${USER}" /usr/local/etc Использование кэширующего прокси или зеркала для Homebrew и данных
Можно настроить Homebrew на получение бутылок и JSON API через кэширующий прокси или зеркало.
Например, в JFrog Artifactory, доступном по адресу https://artifacts.example.com:
- Для бутылок создайте новый репозиторий типа «remote», указав
homebrewв качестве «ключа репозитория» иhttps://ghcr.io(GitHub Packages) в качестве URL. Установите разумный срок действия кэша с учётом доступного объёма хранилища. - Для JSON API создайте новый репозиторий типа «remote», указав
homebrew-json-apiв качестве «ключа репозитория» иhttps://formulae.brew.sh/apiв качестве URL. Установите срок действия кэша 15 минут.
Затем задайте эти переменные окружения, чтобы Homebrew получал данные через кэширующий прокси.
export HOMEBREW_API_DOMAIN=https://artifacts.example.com/artifactory/homebrew-formulae-api export HOMEBREW_ARTIFACT_DOMAIN=https://artifacts.example.com/artifactory/homebrew export HOMEBREW_ARTIFACT_DOMAIN_NO_FALLBACK=1 export HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN="$(printf 'anonymous:' | base64)"
Также можно использовать внутреннее зеркало Homebrew/brew, задав переменную окружения перед запуском установщика Homebrew:
export HOMEBREW_BREW_GIT_REMOTE=https://git.example.com/Homebrew-mirrors/brew-mirror
Другие репозитории артефактов, например Sonatype Nexus Repository Manager, не поддерживают явную анонимную аутентификацию и по-прежнему возвращают ошибку 401 Unauthorized, даже если разрешён публичный доступ на чтение. Чтобы избежать этого, задайте следующие переменные окружения, чтобы Homebrew не передавал заголовок Authorization при обращении к репозиторию артефактов:
export HOMEBREW_DOCKER_REGISTRY_BASIC_AUTH_TOKEN=none
Загрузка Homebrew из одних и тех же dotfiles в разных операционных системах
Некоторые пользователи могут захотеть использовать одни и те же файлы инициализации оболочки в macOS и Linux. Используйте этот код, чтобы определить предполагаемый каталог установки Homebrew и загрузить Homebrew, если он найден. Возможно, потребуется адаптировать его для вашей оболочки или особенностей окружения.
command -v brew || export PATH="/opt/homebrew/bin:/home/linuxbrew/.linuxbrew/bin:/usr/local/bin" command -v brew && eval "$(brew shellenv)"
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Tips-and-Tricks