Spec-Zone.ru › Homebrew

Как создать программное обеспечение за пределами Homebrew с зависимостями Homebrew keg_only

Что означает «keg-only»?

В разделе FAQ кратко объясняется это.

В качестве примера:

OpenSSL не связан символической ссылкой в моем PATH и приложения, созданные вне Homebrew, не могут его найти!

Это происходит потому, что Homebrew изолирует его в собственном префиксе, а не создаёт символическую ссылку на общедоступное расположение.

Рекомендации по возможным решениям

Многие в этой ситуации либо принудительно связывают инструменты keg-only с brew link --force или перемещают системные утилиты по умолчанию из PATH и заменяют их вручную созданными символическими ссылками на инструменты из Homebrew.

Пожалуйста, не удаляйте инструменты macOS по умолчанию и не заменяйте их принудительно символическими ссылками на инструменты из Homebrew. Это может и вероятно приведёт к серьёзным проблемам при попытке сборки программного обеспечения.

brew link --force создаёт предупреждение в brew doctor, чтобы проинформировать вас и администраторов о том, что существует ссылка, которая может вызывать проблемы. Если вы создали ссылку, и при этом нет никаких проблем, можете проигнорировать ошибку brew doctor.

Как использовать эти инструменты за пределами Homebrew?

Существуют полезные и надёжные альтернативы, если вам нужно использовать инструменты keg-only за пределами Homebrew.

Флаги сборки

Можно установить флаги, чтобы направить утилиты конфигурации или Makefiles в нужном направлении. Пример установки флагов:

./configure --prefix=/Users/Dave/Downloads CFLAGS="-I$(brew --prefix)/opt/openssl/include" LDFLAGS="-L$(brew --prefix)/opt/openssl/lib"

Пример с использованием pip:

CFLAGS="-I$(brew --prefix)/opt/icu4c/include" LDFLAGS="-L$(brew --prefix)/opt/icu4c/lib" pip install pyicu

PATH модификация

Можно временно добавить в начало вашего PATH каталог bin инструмента, например:

export PATH="$(brew --prefix)/opt/openssl/bin:${PATH}"

Это добавит каталог в начало вашего PATH, гарантируя, что любой скрипт сборки, который ищет в PATH, найдёт его в первую очередь.

Изменение вашего PATH с помощью этой команды гарантирует, что изменение существует только в течение текущего сеанса оболочки. После завершения текущего сеанса PATH вернётся к своему предыдущему состоянию.

pkg-config обнаружение

Если инструмент, который вы пытаетесь собрать, поддерживает pkg-config, вы можете изменить свой PKG_CONFIG_PATH для поиска файлов .pc keg-only утилиты, если они есть. Не все формулы поставляются с этими файлами.

Пример этого:

export PKG_CONFIG_PATH="$(brew --prefix)/opt/openssl/lib/pkgconfig"

Если вас интересует переменная PKG_CONFIG_PATH, man pkg-config содержит более подробную информацию.

Вы можете вывести путь поиска по умолчанию с помощью:

pkg-config --variable pc_path pkg-config

© 2009–present Homebrew contributors
Licensed under the BSD 2-Clause License.
https://docs.brew.sh/How-to-Build-Software-Outside-Homebrew-with-Homebrew-keg-only-Dependencies

Spec-Zone.ru

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