Anthropic の AI 開発ツール「Claude Code」をアップデートしようとしたときに、少しハマった出来事がありました。
claude update を実行して「アップデート成功」のメッセージが表示されたにもかかわらず、Claude Code を起動すると古いバージョンのままであるという問題に遭遇しました。
本記事では、このように「claude update が成功したのに、実際にはバージョンが上がっていないケース」に対する対応方法を紹介します。
結論
バイナリの実体が別の場所にある可能性が高い
この問題の主な原因は、claude update が更新しようとしているバイナリと、実際にシステムで使用されている Claude Code のバイナリが 別の場所にあることです。
この問題の本質は、以下のような構成にあります。
claude updateは、Anthropic の公式インストーラ(.claude配下など)にインストールされた Claude Code を更新します- 一方、Volta、nvm、asdf など Node.js/npm のバージョン管理ツール下にインストールされている Claude Code は対象外
Node.js/npm 系のバージョン管理ツール(Volta、nvm、asdfなど)を使用している場合にありがちな状況です。
私のケース(Volta を使っていた)
私の環境では、Node.js のバージョン管理に Volta を使っており、Claude Code のインストール先を調べると下記のようになっていました。
$ which claude
/Users/MY_NAME/.volta/bin/claudeこの状態で claude update を実行しても、Volta 配下の Claude Code がアップデートされるわけではなく、.claude 配下にある Claude Code がアップデートされているだけでした。
であるが、故に古いバージョンのまま Claude Code が起動していました。
解決方法
Claude Code のインストール場所を .claude に統一する
Anthropic の公式ドキュメントでも案内されているように、今後は Claude Code のインストール先を ~/.claude に統一することが推奨されています。
そのために用意されているのが、CLI 上で実行できる以下のスラッシュコマンドです。
/migrate-installerClaude Code を起動してこのスラッシュコマンドを実行すると、.claude 配下に Claude Code をインストールしてくれます。
これにより、バージョン管理ツールや他のグローバル環境に依存せず、Anthropic の管理下で安定的にアップデート可能な構成に移行できます。
そもそも Claude Code が起動できない場合
ここで問題になるのが、古いバージョンの Claude Code ではアプリ自体が起動できないケースです。
つまり、/migrate-installer を実行したくても、Claude Code が立ち上がらなければ意味がありません。
そんなときは、npm を使って Claude Code を直接アップデートすれば OK です。
npm install -g @anthropic-ai/claude-codeこのコマンドを実行するとバージョン管理ツール配下にインストールされた Claude Code であってもアップデートされるので Claude Code の起動ができるようになります。
解決までのステップの整理
今回解決までに実施したことを整理すると下記の通りです。
1. 現在の Claude Code のインストール場所を確認
which claudeNode.js バージョン管理ツール配下(例:~/.volta/...)になっていれば、以降の手順が必要です。
2. Claude Code を起動し、/migrate-installer を実行
正常に起動できたら、以下のスラッシュコマンドを実行します。
/migrate-installerこれによって、Claude Code は .claude ディレクトリ配下に移動され、以後は claude update コマンドで問題なくアップデートできるようになります。
2-1. 一時的に最新版を上書きする(Claude Code が起動できない場合)
Claude Code を起動できるようにするため、まず npm で最新版をインストールします。
npm install -g @anthropic-ai/claude-codeこれにより、Claude Code が起動できるので、/migrate-installer を実行します。
3. (任意)Node.js のバージョン管理ツール配下の古いインストールを削除
任意ではあるのですが、多くの場合バージョン管理ツールのパスの方が優先度が高いので削除しておくことが望ましいです。
which claude
#. /Users/MY_NAME/.volta/bin/claude
#. -> VoltaのClaude Codeが使われているから削除
#. /Users/MY_NAME/.claude/local/claude
#. 正しいインストール先
rm /Users/MY_NAME/.volta/bin/claude
他の管理ツールを使用していた場合も、それぞれの方法で不要な Claude Code を削除してください。
まとめ
claude updateが成功しても Claude Code のバージョンが上がらない場合、Node.js/npm のバージョン管理ツール配下の古いバイナリが使われている可能性が高い- 根本的な解決は、
/migrate-installerによって.claudeに移行すること - ただし、
claude codeが古すぎて起動できない場合は、一度npm install -g @anthropic-ai/claude-codeで更新してから/migrate-installerを実行
最後に
この記事で紹介したのは、あくまで一例です。
使用しているバージョン管理ツールや環境によって、細部の挙動は異なる可能性があります。
ただし共通して言えるのは:
「claude update が成功した = 実行中のバイナリが更新された」とは限らない
という点です。
同様の症状に遭遇した際の参考になれば幸いです。


