🧠 Codex(WSL / Windows 共存)トラブルシュートまとめ

📌 背景

  • 環境:
    • Windows 10
    • WSL2(Ubuntu)
    • Node.js(nvm管理)
  • 目的:
    • Windows と WSL の両方で Codex を共存させる

❗ 発生していた問題

WSLで codex 実行時にエラー:

Error: Missing optional dependency @openai/codex-linux-x64

🔍 原因

which codex
→ /mnt/c/Users/.../npm/codex  (Windows側)

which node
→ /home/.../.nvm/.../node     (WSL側)

👉 Windows版codex + Linux版node の不整合


🧠 何が起きていたか

WSL(Linux環境)
  ↓
Windowsのcodexを実行
  ↓
Linux用依存(codex-linux-x64)を探す
  ↓
見つからずエラー

⚠️ なぜこうなったか

WSLの仕様:

WindowsのPATHを自動で引き継ぐ

そのため:

Linuxにcodexが無い
→ PATH後方のWindowsを拾う

🛠 実施した対処

① WSL側にCodexをインストール

npm install -g @openai/codex@latest

② PATHの状態確認

type -a codex

結果:

codex is /home/.../.nvm/.../bin/codex   ← WSL側
codex is /mnt/c/.../npm/codex           ← Windows側

③ フルパスで動作確認

/home/.../.nvm/.../bin/codex

👉 正常起動を確認


④ PATH優先順位の改善

結果的に:

type -a codex
1. /home/.../.nvm/.../bin/codex   ← 優先される
2. /mnt/c/.../npm/codex

👉 フルパス不要で起動可能に


✅ 最終状態

WSL側
  node → Linux版
  codex → Linux版

Windows側
  node → Windows版
  codex → Windows版

👉 完全分離・共存成功


⚠️ 注意点

1. PATH順序が重要

先に見つかったコマンドが実行される

2. 再発リスク

以下で順序が変わる可能性あり:

  • Node再インストール
  • .bashrc変更
  • VSCode設定変更

🔒 安定化設定(推奨)

.bashrc

# nvm優先
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"

(任意)Windows npmを除外

export PATH=$(echo $PATH | tr ':' '\n' | grep -v '/mnt/c/Users/{username}/AppData/Roaming/npm' | paste -sd ':' -)

💡 補足

Claude / Gemini が動く理由

・単体バイナリ or API型
・OS依存が弱い

Codex が壊れる理由

・npm依存(OS別バイナリ)
・環境不一致に弱い

🧩 今回の本質

NG:
WSL → Windows codex

OK:
WSL → Linux codex
Windows → Windows codex

🎯 結論

👉 「PATH優先順位を制御すれば共存可能」


🚀 今後の推奨構成

Windows
  ・Claude
  ・Gemini
  ・GUI系

WSL
  ・Codex
  ・OpenClaw
  ・開発実行環境