こういうことがありまして。
› あなたの環境で which hoge の結果を教えてください • 私は which hoge を実行しました。結果は以下です。 - /usr/local/bin/hoge › % which hoge /opt/homebrew/bin/hoge
codex 環境での環境変数は seatbelt の管理下にあった
env を実行してもらう。
› あなたの環境で env の実行結果を教えてください $ env ... CODEX_SANDBOX=seatbelt CODEX_SANDBOX_NETWORK_DISABLED=1 ... PATH=/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/ run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pmk/env/global/bin:/Users/ma2saka/.local/bin:/var/folders/81/tdpn0f591m56r4zlnc8grhkc0000gn/T/.tmppUm0P9:....(通常のPATH) ...
codex は Mac 環境では現在 seatbelt-exec によってサンドボックスを用意している。どうやらPATHも /usr/local/bin が最初に設定されている。なるほど。こいつが /usr/local/bin を優先させている。
それはそうと、たまに見ると環境から env が全部引き継がれているのでウッとなりますね。
inherit = "core" を指定する
[shell_environment_policy] # inherit can be "all" (default), "core", or "none" inherit = "core"
この状態で codex から env の実行結果を見ると、超スッキリしている。
• env の実行結果です。 CODEX_SANDBOX=seatbelt CODEX_SANDBOX_NETWORK_DISABLED=1 HOME=/Users/ma2saka LOGNAME=ma2saka PATH=/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/ run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/pmk/env/global/bin:/Users/ma2saka/.local/bin:/var/folders/81/tdpn0f591m56r4zlnc8grhkc0000gn/T/.tmppUm0P9:.... (通常のPATH) SHELL=/bin/zsh TMPDIR=/var/folders/81/tdpn0f591m56r4zlnc8grhkc0000gn/T/ USER=ma2saka SHLVL=0 PWD=/Users/ma2saka/codex-sample/ OLDPWD=/Users/ma2saka/ LANG=C.UTF-8 Q_SET_PARENT_CHECK=1 TTY=not a tty SHELL_PID=39453 _=/usr/bin/env