keg_only
依赖项之外使用 Homebrew 构建软件常见问题解答对此进行了简要说明。
例如
OpenSSL 未符号链接到我的 PATH
,非 Homebrew 构建找不到它!
这是因为 Homebrew 将其隔离在其单独的前缀中,而不是符号链接到公开的位置。
在这种情况下,许多人要么使用 brew link --force
强制链接 keg-only 工具,要么将默认系统实用程序移出 PATH
,并用手动创建的符号链接替换它们,指向 Homebrew 提供的工具。
请不要删除 macOS 原生工具,并用指向 Homebrew 提供的工具的符号链接强制替换它们。这样做可能会并且很可能在尝试构建软件时造成重大损坏。
brew link --force
在 brew doctor
中创建一个警告,让您和维护人员知道存在可能导致问题的链接。如果您已链接了某些内容,并且没有任何问题?请随意忽略 brew doctor
错误。
如果您希望在 Homebrew 之外使用 keg-only 工具,则存在有用且可靠的备选方案。
您可以设置标志,以便为配置脚本或 Makefile 提供正确的方向。设置标志的示例
./configure --prefix=/Users/Dave/Downloads CFLAGS="-I$(brew --prefix openssl)/include" LDFLAGS="-L$(brew --prefix openssl)/lib"
使用 pip
的示例
CFLAGS="-I$(brew --prefix icu4c)/include" LDFLAGS="-L$(brew --prefix icu4c)/lib" pip install pyicu
PATH
修改您可以暂时使用工具的 bin
目录预置您的 PATH
,例如
export PATH="$(brew --prefix openssl)/bin:${PATH}"
这会将该目录预置到您的 PATH
中,确保任何搜索 PATH
的构建脚本都能首先找到它。
使用此命令更改 PATH
可确保更改仅在 shell 会话期间存在。当前会话结束后,PATH
将恢复到其先前状态。
pkg-config
检测如果您尝试构建的工具支持 pkg-config,您可以修改 PKG_CONFIG_PATH
以查找 keg-only 实用程序的 .pc
文件(如果有)。并非所有配方都附带这些文件。
一个示例是
export PKG_CONFIG_PATH="$(brew --prefix openssl)/lib/pkgconfig"
如果您对 PKG_CONFIG_PATH
变量感到好奇,man pkg-config
会提供更多详细信息。
您可以使用 pkg-config
打印默认搜索路径
pkg-config --variable pc_path pkg-config