0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

WSLで「`codex: command not found`」を“根治”する:nvm統一→LTS化→wslview→恒久化(コピペ可・初心者向け)

Last updated at Posted at 2025-09-25

ゴール:WSL(Ubuntu) を開いたら 毎回ただ codex と打つだけで CodexCLI が使える。
やること:① nvm 方式に統一 → ② LTS の Node を既定化 → ③ CodexCLI を導入 → ④ wslview でログイン画面を確実に開く → ⑤ .bashrc に恒久設定。

はじめに(Problem → Agitation → Solution)

Problem|よくあるつまずき

  • codex: command not found と言われる
  • npm -g のインストール先(prefix)と nvm がケンカして PATH から消える
  • WSL からブラウザが開かず、サインイン画面にたどり着けない

Agitation|放置のデメリット

  • 直ったと思っても Node を更新した瞬間に再発(nvm は Node ごとにグローバルが別)
  • 再セットアップの 手戻りコスト が継続的に発生

Solution|設計から直す

  • nvm 方式に統一し、LTS を既定化
  • CodexCLI は nvm 管理下の npm -g で入れる(sudo 不要)
  • wslview で WSL→Windows の既定ブラウザを開く
  • .bashrc自動初期化を仕込んで恒久化

目次

  1. はじめに(Problem → Agitation → Solution)
  2. 前提(環境と用語)
  3. 全体像(根本原因と対処)
  4. ステップ1:nvm を初期化し、LTS の Node を既定にする
  5. ステップ2:CodexCLI をインストール(nvm 配下・sudo 不要)
  6. ステップ3:wslview を入れて、ブラウザを確実に開く
  7. ステップ4:初回サインイン(Sign in with ChatGPT)
  8. ステップ5:恒久化(.bashrc に自動初期化を追記)
  9. 失敗時のチェック(よくあるQ&A)
    • Q1. codex: command not found のまま
    • Q2. サインイン画面が開かない/真っ白
    • Q3. Node を更新したらまた見えなくなった
  10. 最短ワンライナー(全部まとめてやる版)
  11. 参考資料
  12. おまけ:用語の解説
  13. まとめ

前提(環境と用語)

  • WSL2 + Ubuntu(Windows 上の Linux 環境)
  • nvm:Node.js のバージョンを切り替える道具。バージョンが変わると npm の“グローバル置き場”も別になる。
  • wslview(wslu):WSL から Windows の既定ブラウザを開くユーティリティ。
  • PATH:シェルが コマンドを探す“道”。ここに codex の置き場が入っていないと「見つからない」。

全体像(根本原因と対処)

  1. npm prefix と nvm の不整合~/.npmrc で prefix をいじらず nvm に統一
  2. PATH 未反映.bashrcnvm 初期化を記述
  3. WSL→ブラウザ連携不足wslu(wslview)導入BROWSER=wslview

ステップ1:nvm を初期化し、LTS の Node を既定にする

# nvm を読み込む(毎回は不要:後で .bashrc に恒久化します)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"

# LTS をインストールして、その場で使う
nvm install --lts
nvm use --lts

# 次回以降も LTS を自動で使う既定設定
nvm alias default lts/*

解説

  • export NVM_DIR=... / . "$NVM_DIR/nvm.sh"nvm 本体を読み込む(このシェルだけ有効)
  • nvm install/use --lts安定版(LTS)の Node を入れて選択
  • nvm alias default lts/*新しいシェルでも LTS を既定にする

ステップ2:CodexCLI をインストール(nvm 配下・sudo 不要)

# CodexCLI をグローバル導入
npm install -g @openai/codex

# 実行ファイルの場所とバージョンを確認
which codex
codex --version

解説

  • npm install -g:ツールをどこからでも使えるように入れる(nvm 配下なので権限はユーザーだけでOK)
  • which codex:PATH 上の codex のフルパスを表示
  • codex --version:CodexCLI の バージョンを確認

ステップ3:wslview を入れて、ブラウザを確実に開く

# wslu(wslview を含む)を導入(初回だけ)
sudo apt update && sudo apt install -y wslu

# このシェルで wslview を“ブラウザ”として使う
export BROWSER=wslview

解説

  • sudo apt install -y wslu:WSL ユーティリティ群(wslview含む)を入れる
  • export BROWSER=wslviewリンクを Windows 既定ブラウザで開くよう指定(このシェルのみ)

ステップ4:初回サインイン(Sign in with ChatGPT)

# CodexCLI を起動(サインイン画面が Windows 側で開く)
codex

操作

  • 画面の案内に従い 「Sign in with ChatGPT」 を選択。
  • 認証情報はホーム配下 ~/.codex/ に保存され、次回からすぐ使える。

ステップ5:恒久化(.bashrc に自動初期化を追記)

# 一度だけ追記(重複防止の印を付けています)
grep -q '### codex auto-setup ###' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
### codex auto-setup ###
# nvm の初期化(新しいシェルでも nvm を使えるようにする)
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"

# 毎回 LTS を自動選択(codex が常に見える状態に)
nvm use --lts > /dev/null 2>&1

# WSL から Windows の既定ブラウザを使う(サインイン画面が確実に開く)
export BROWSER=wslview
### codex auto-setup ###
EOF

# すぐ反映
source ~/.bashrc

解説

  • nvm 初期化PATH に nvm 管理の bin を通す
  • nvm use --lts:新しいシェル起動時に 自動で LTS を選ぶ
  • export BROWSER=wslview認証やリンクを Windows の既定ブラウザで開く

失敗時のチェック(よくあるQ&A)

Q1. codex: command not found のまま

# nvm が読み込まれているか
command -v nvm || echo "nvm が未読み込みです"

# LTS を選べているか
nvm use --lts
node -v && npm -v
npm config get prefix   # ~/.nvm/versions/node/... になっていればOK

# CodexCLI が入っているか
npm list -g --depth=0 | grep @openai/codex || echo "未インストールの可能性"
which codex || echo "PATH 未反映の可能性"

Q2. サインイン画面が開かない/真っ白

pkill -f codex || true     # codex をいったん終了
export BROWSER=wslview     # ブラウザを wslview に明示
codex

(Chrome を直指定する例)

export BROWSER="/mnt/c/Program Files/Google/Chrome/Application/chrome.exe"
codex

Q3. Node を更新したらまた見えなくなった(nvm は Node ごとに npm グローバルが別

# 旧バージョンを控える(例: v22.20.0)
OLD_NODE="$(nvm current)"

# 新しい LTS を入れて切替
nvm install --lts
nvm use --lts
nvm alias default lts/*

# 旧バージョンのグローバルを新バージョンに引き継ぐ
nvm reinstall-packages "$OLD_NODE"

# 念のため CodexCLI を明示再導入
npm install -g @openai/codex

最短ワンライナー(全部まとめてやる版)

実行前に .bashrc のバックアップ推奨。

export NVM_DIR="$HOME/.nvm"; [ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
nvm install --lts && nvm use --lts && nvm alias default lts/*

npm install -g @openai/codex

sudo apt update && sudo apt install -y wslu

grep -q '### codex auto-setup ###' ~/.bashrc || cat >> ~/.bashrc <<'EOF'
### codex auto-setup ###
export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && . "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && . "$NVM_DIR/bash_completion"
nvm use --lts > /dev/null 2>&1
export BROWSER=wslview
### codex auto-setup ###
EOF
source ~/.bashrc

codex   # 初回はサインイン

参考資料


おまけ:用語の解説

  • nvm:Node のバージョンを切り替える道具。バージョンが変わると npm の“グローバル置き場”も別になる点がキモ。
  • npm -g:ツールをどこからでも使えるように入れること。nvm 管理下で使うと安全。
  • wslview:WSL から Windows の既定ブラウザを開くコマンド。サインイン画面が確実に出る。
  • PATH:シェルが コマンドを探す道。ここに codex の場所が含まれていないと「見つからない」。

まとめ

  • nvm に統一して LTS を既定化wslview でサインイン画面を確実に開き、.bashrc毎回の初期化を自動化すれば、WSL を開いて codex と打つだけの快適環境になります。
  • Node 更新時は nvm reinstall-packagesnpm -g i @openai/codex で“すぐ復活”。
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?