Claude Code が「command not found」になる原因と復旧方法【nvm環境編】

  • URLをコピーしました!

※本ページはアフィリエイト広告を利用しています

今回はClaude Codeなどのターミナルで使用するAIエージェントの環境で発生するエラーと対策について解説します。

先日まで正常に使えていた claude コマンドが、ある日突然

bash: /home/user/.nvm/versions/node/v18.20.8/bin/claude: No such file or directory

と表示され、実行できなくなりました。本記事では、この現象の原因と具体的な復旧手順、再発を防ぐ方法をまとめます。

目次

症状の概要

  • claude コマンドが見つからない (command not found)
  • which claude を実行しても出力なし
  • グローバルインストール済みのはずなのに、npm list -g には @anthropic-ai/claude-code が残っている

このような状況は「実行ファイル (shim) が壊れた」「PATH が通っていない」「残骸が残っている」などが原因です。

原因

調査の結果、以下の要因が複合していました。

  1. nvm 環境では Node バージョンごとに bin ディレクトリが切り替わる
    → シェル再起動後に PATH から外れることがある。
  2. npm uninstall 時の ENOTEMPTY エラー
    .claude-code-xxxx という一時ディレクトリが残り、インストールが壊れる。
  3. shim の CRLF 改行や壊れたシンボリックリンク
    → 実体があるのに「No such file or directory」と表示される。

復旧手順

ここからは実際に復旧手順を解説します。以下のコマンドを順番にターミナルで実行していくだけで復旧できますので、ぜひ試してみてください。

1. グローバルの場所を確認

PREFIX="$(npm prefix -g)"
BIN="$PREFIX/bin"
ROOT="$PREFIX/lib/node_modules"
echo $PREFIX
echo $BIN
echo $ROOT

2. 壊れた残骸を削除

rm -rf "$ROOT/@anthropic-ai/claude-code" \
       "$ROOT/@anthropic-ai/.claude-code-"* \
       "$ROOT/claude-code" \
       "$BIN/claude"

3. キャッシュを整備

npm cache verify || true
npm cache clean --force

4. クリーン再インストール

npm install -g @anthropic-ai/claude-code

5. 動作確認

which claude
claude --version

これで正常に復旧しました。

再発防止のポイント

  1. PATH を自動で設定する
    .bashrc に追記: export PATH="$PATH:$(npm prefix -g)/bin"
  2. nvm 切替後に rebuild nvm use 18.20.8 npm rebuild -g
  3. 非常用の npx 実行
    グローバルが壊れても npx --yes @anthropic-ai/claude-code@latest --version で即席利用可能。
  4. エイリアスでワンコマンド修復
    .bashrc に追加: alias fixclaude='ROOT="$(npm root -g)"; BIN="$(npm prefix -g)/bin"; rm -rf "$ROOT/@anthropic-ai/claude-code" "$ROOT/@anthropic-ai/.claude-code-"* "$ROOT/claude-code"; rm -f "$BIN/claude"; npm i -g @anthropic-ai/claude-code'

まとめ

  • claude: command not found の原因は 壊れた shim や PATH 設定漏れ
  • 残骸削除 → 再インストール → PATH 設定 で復旧できる
  • nvm 環境では Node 切替やシェル再起動後に再発しやすいため、再発防止の設定をしておくと安心

✅ 今回のような npm グローバルコマンドのトラブルは他のツール(eslint, prettier など)でも起こり得ます。この記事の手順を覚えておくと応用可能です。

よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

CAPTCHA


目次