Как создать и поддерживать репозиторий
Репозитории — это внешние источники формул Homebrew, библиотек и/или внешних команд. Их может создать любой пользователь, чтобы предоставить свои формулы, библиотеки и/или внешние команды любым пользователям Homebrew.
Создание репозитория
Репозиторий обычно представляет собой репозиторий Git, доступный онлайн, но вы можете использовать любой формат, если он поддерживается Git, или даже просто директорию с файлами. Если он размещён на GitHub, мы рекомендуем, чтобы имя репозитория начиналось с homebrew- , чтобы команда brew tap могла использоваться в сокращённом виде. Подробную информацию об именовании репозитория см. в документации.
Команда brew tap-new может использоваться для создания нового репозитория вместе с шаблонами файлов.
Формулы в репозитории следуют тому же формату, что и формулы ядра, и могут быть добавлены в поддиректорию Formula, поддиректорию HomebrewFormula или в корневую директорию репозитория. Используется первая доступная директория, остальные игнорируются. Мы рекомендуем использовать поддиректории, так как это облегчает организацию репозитория, а файлы верхнего уровня не смешиваются с формулами.
Пример репозитория с поддиректорией Formula см. в homebrew/core.
Именование формул для избежания конфликтов
Если у ваших формул одинаковое имя с формулами из Homebrew/homebrew-core, их нельзя установить одновременно. Если вы хотите создать другую версию формулы, которая есть в Homebrew/homebrew-core (например, с option), рассмотрите возможность присвоения ей другого имени, например, nginx-full для более функциональной nginx формулы. Это позволит установить одновременно как nginx, так и nginx-full, при условии, что одна из них является keg_only или сопутствующие файлы не конфликтуют.
Установка
Если репозиторий находится на GitHub, пользователи могут установить любую вашу формулу с помощью команды brew install user/repo/formula. Homebrew автоматически добавит ваш репозиторий github.com/user/homebrew-repo перед установкой формулы. user/repo/formula указывает на файл github.com/user/homebrew-repo/**/formula.rb здесь.
Если пользователи хотят получить ваш репозиторий без одновременной установки формулы, они могут добавить его с помощью brew tap команды.
Если репозиторий находится на GitHub, они могут использовать brew tap user/repo, где user — ваше имя пользователя GitHub, а homebrew-repo — ваш репозиторий.
Если репозиторий размещён вне GitHub, они должны использовать brew tap user/repo <URL>, где user и repo будут использоваться для ссылки на ваш репозиторий, а <URL> — это URL вашего репозитория Git.
Пользователи могут затем установить ваши формулы с помощью brew install foo, если нет формулы ядра с таким же именем, или с помощью brew install user/repo/foo, чтобы избежать конфликтов.
Поддержка репозитория
Репозиторий — это просто репозиторий Git, поэтому вам не нужно выполнять никаких специальных действий при внесении изменений, кроме как зафиксировать и опубликовать свои изменения.
Обновление
После установки вашего репозитория Homebrew будет обновлять его каждый раз, когда пользователь выполняет brew update. Устаревшие формулы будут обновлены при выполнении пользователем brew upgrade, как и формулы ядра.
Библиотеки
Библиотеки также могут быть установлены из репозитория. Библиотеки могут быть включены в репозитории с формулами или в репозиторий только с библиотеками. Разместите все файлы библиотек, которые вы хотите сделать доступными, в поддиректории Casks в корне вашего репозитория.
Пример репозитория с поддиректорией Casks см. в homebrew/cask.
Именование
В отличие от формул, библиотеки должны иметь уникальные имена, чтобы избежать конфликтов. Это можно сделать, например, добавив префикс имени библиотеки с вашим именем пользователя GitHub: username-formula-name.
Внешние команды
Вы можете предоставить своим пользователям репозитория пользовательские brew команды, добавив их в поддиректорию cmd. Дополнительную информацию об внешних командах см. здесь.
Пример репозитория с внешними командами см. в homebrew/aliases.
Официальные репозитории поставщиков
Некоторые поставщики программного обеспечения, такие как upstream, предпочитают упаковывать своё программное обеспечение в собственные репозитории Homebrew. Когда их программное обеспечение подходит для Homebrew/homebrew-core, мы предпочитаем поддерживать их там для удобства обновлений, улучшенной обнаруживаемости и использования инструментов, таких как formulae.brew.sh.
Мы не намерены удалять программное обеспечение, упакованное в Homebrew/homebrew-core, в пользу внешнего репозитория. Мы не намерены инструктировать пользователей в наших формулах использовать ваши формулы вместо наших.
Если у upstream проектов есть проблемы с тем, как Homebrew упаковывает ваше программное обеспечение, подайте заявку на проблему (или, желательно, отправьте исправление) для решения этих проблем.
Существует всё большая потребность в коммерческих проектах с открытым исходным кодом в «контроле над конфигурацией», т.е. в чётком определении того, какие исполняемые файлы отправляются пользователям. Не поддержка создания программ из исходного кода (или даже распространения программного обеспечения) противоречит ценностям открытого исходного кода. Если вы считаете позицию Homebrew по этому вопросу раздражающей, попробуйте узнать, как Debian отвечает на запросы на распространение ваших библиотек.
© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/How-to-Create-and-Maintain-a-Tap