keg_only
相依套件在 Homebrew 外部建置軟體常見問題集 簡要說明了這一點。
舉例來說
OpenSSL 沒有符號連結到我的 PATH
,非 Homebrew 建置找不到它!
這是因為 Homebrew 將其隔離在個別前置詞中,而不是符號連結到公開位置。
許多處於這種情況的人會強制連結 keg-only 工具與 brew link --force
,或將預設系統公用程式移出 PATH
,並用 Homebrew 提供的工具手動建立的符號連結取代它們。
請不要移除 macOS 原生工具,並強制用符號連結取代它們,指向 Homebrew 提供的工具。這麼做可能會造成重大損壞,並可能在嘗試建置軟體時造成重大損壞。
brew link --force
會在 brew doctor
中建立警告,讓您和維護人員知道存在可能造成問題的連結。如果您已連結某個項目,且完全沒有問題?請忽略 brew doctor
錯誤。
如果您想在 Homebrew 外部使用 keg-only 工具,有許多有用且可靠的替代方案。
您可以設定旗標,讓設定指令碼或 Makefiles 朝正確的方向前進。設定旗標的範例
./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
修改您可以暫時在 PATH
前加上工具的 bin
目錄,例如
export PATH="$(brew --prefix openssl)/bin:${PATH}"
這會在您的 PATH
前加上目錄,確保任何搜尋 PATH
的建置指令碼會先找到它。
使用此命令變更 PATH
,可確保變更僅存在於 shell 會話期間。目前的會話結束後,PATH
會回復到前一個狀態。
pkg-config
偵測如果您嘗試建置的工具知道 pkg-config,您可以修改 PKG_CONFIG_PATH
以尋找 keg 專用工具的 .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