今回は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 が通っていない」「残骸が残っている」などが原因です。
原因
調査の結果、以下の要因が複合していました。
- nvm 環境では Node バージョンごとに bin ディレクトリが切り替わる
→ シェル再起動後に PATH から外れることがある。 - npm uninstall 時の ENOTEMPTY エラー
→.claude-code-xxxx
という一時ディレクトリが残り、インストールが壊れる。 - 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
これで正常に復旧しました。
再発防止のポイント
- PATH を自動で設定する
.bashrc
に追記:export PATH="$PATH:$(npm prefix -g)/bin"
- nvm 切替後に rebuild
nvm use 18.20.8 npm rebuild -g
- 非常用の npx 実行
グローバルが壊れてもnpx --yes @anthropic-ai/claude-code@latest --version
で即席利用可能。 - エイリアスでワンコマンド修復
.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 など)でも起こり得ます。この記事の手順を覚えておくと応用可能です。
コメント