[Mac M2 Pro 12CPU, Sonoma 14.3.1, clang++ 15.0.0]
以前の記事”[AI] ローカルLLM検証 llama.cppのmake時にSegmentation fault:11発生 macOS”で.bash_profileを書き換え、PATHの優先順位を変えました。
何らかの弊害があるだろうと思っていましたが、早速問題が表出しました。
pythonコマンドで/usr/local/binにある普段使いのPython3.10.4ではなく、/usr/binにあるPython3.9.6(macOSのデフォルト)が呼び出されるようになりました。
ChatGPTに解決方法を教えてもらい、以下のように.bash_profileを書き換えました。
PROMPT_COMMAND="check_for_llama_cpp"
check_for_llama_cpp() {
# grepファイルを読み込めるようにする
export PATH=/usr/bin:$PATH
if ls | grep -q "llama.cpp"; then
# 'llama.cpp' を含むディレクトリの場合
export PATH=/usr/local/bin:$PATH
export PATH=/usr/bin:$PATH
else
# それ以外のディレクトリの場合
export PATH=/usr/bin:$PATH
export PATH=/usr/local/bin:$PATH
fi
}
これでllama.cppをビルドする時だけPATHの優先順位が変わり、/usr/binが優先されます。カレントディレクトリが変わる度にPROMPT_COMMANDによるチェックが入る仕組みです。その度にPATHデータが増えていきますが、パフォーマンスに影響はないでしょう。