3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code インストール時にnodenvで苦しめられた話

Posted at

Claude Codeをインストールしたはずなのに、claudeコマンドが見つからないエラーに遭遇した話を備忘録として残しておきます。

問題の発生

Claude Codeのインストール

公式手順に従って npm でグローバルインストールを実行:

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

問題発生

インストール後にコマンドを実行しようとするとエラー:

$ claude
zsh: command not found: claude

公式手順通りにやったのに上手くいかない...なぜ?

原因と解決方法

原因

nodenvを使用している環境では、グローバルパッケージをインストールした後に追加の手順が必要

nodenvは「shims」という仕組みでコマンドを管理しているため、新しくインストールされたコマンドを認識させるために「rehash」が必要です。

解決方法

$ nodenv rehash

トラブルシューティング

もし以下のエラーが出た場合:

nodenv: cannot rehash: /Users/<user>/.nodenv/shims/.nodenv-shim exists

次のコマンドでshimsディレクトリを再作成:

$ rm -rf ~/.nodenv/shims
$ nodenv rehash

動作確認

$ claude --version
1.0.24 (Claude Code)

nodenvのshimsとは?

公式説明(和訳)

nodenvは、シムと呼ばれるディレクトリをPATHの先頭に挿入することで動作します:
~/.nodenv/shims:/usr/local/bin:/usr/bin:/bin

「リハッシング」と呼ばれるプロセスを通じて、nodenvはそのディレクトリ内に、インストールされているすべてのNodeバージョンにわたるすべてのNodeコマンド(node、npmなど)に対応するシムを維持します。

動作の流れ

  1. npm install -g @anthropic-ai/claude-code でパッケージをインストール
  2. この時点では、shimsディレクトリにclaudeコマンドは存在しない
  3. nodenv rehash を実行
  4. shimsディレクトリにclaude用の実行ファイルが作成される

確認方法

rehash後、shimsディレクトリを確認すると:

$ ls ~/.nodenv/shims
claude   node   npm   npx   ...

shimの中身(参考)

~/.nodenv/shims/claudeの内容例:

#!/usr/bin/env bash
set -e
[ -n "$NODENV_DEBUG" ] && set -x
program="${0##*/}"
if [ "$program" = "node" ]; then
  for arg; do
    case "$arg" in
    -e* | -- ) break ;;
    */* )
      if [ -f "$arg" ]; then
        export NODENV_DIR="${arg%/*}"
        break
      fi
      ;;
    esac
  done
fi
export NODENV_ROOT="/Users/<user>/.nodenv"
exec "/opt/homebrew/bin/nodenv" exec "$program" "$@"

まとめ

nodenv環境でnpmグローバルパッケージをインストールした場合は、必ずnodenv rehashを実行するが必要ですね〜。勉強になりました。

3
1
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
3
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?