Spec-Zone.ru › Homebrew

Создание приложений, использующих зависимости, не из Homebrew

История

Изначально Homebrew был менеджером пакетов, собирающим программы из исходного кода, и все переменные окружения пользователя и программное обеспечение, не установленное через Homebrew, было доступно для сборки. С тех пор Homebrew добавил Requirement для указания зависимостей от программного обеспечения, не из Homebrew (например, от программ, предоставляемых brew cask , такими как X11/XQuartz), систему сборки superenv для исключения неуказанных зависимостей, фильтрацию переменных окружения для предотвращения утечки переменных пользователя в сборку Homebrew и default_formula для указания того, что зависимость Requirement может быть удовлетворена конкретной формулой.

По мере того как Homebrew стал в основном менеджером двоичных пакетов, большинство пользователей удовлетворяли Requirement с помощью default_formula, а не с помощью произвольных альтернатив. Для повышения качества и уменьшения вариаций, Homebrew теперь исключительно поддерживает использование стандартной формулы, как обычной зависимости, и больше не поддерживает использование произвольных альтернатив.

Сегодня

Если вы хотите создать приложение, использующее пользовательские зависимости, не из Homebrew, предоставленные Homebrew (например, программное обеспечение, не из Homebrew, не для macOS, ruby), то вам необходимо создать и поддерживать собственный tap, так как эти формулы не будут приняты в Homebrew/homebrew-core. После этого вы можете указать env :std в формуле, что позволит, например, which ruby получить доступ к существующей переменной PATH и разрешить компиляцию для связи с этой версией Ruby. Вы также можете включить пользовательский Requirement в свою формулу, чтобы более точно описать программное обеспечение, не из Homebrew, с которым вы работаете.

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/Building-Against-Non-Homebrew-Dependencies

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API