Claude Code
(AIがプログラムを書くのを手伝ってくれる、とても便利なツールです)をアップデートしようとしたら、なぜかバージョンが全く変わらない現象に遭遇。
コマンド上は成功しているように見えるのに、何度確認しても古いバージョンのまま。気づけばかなりの時間が溶けていました…。
きっと同じように「あれ?」となっている方の助けになればと思い、今回の調査結果と解決までの道のりを、未来の自分への備忘録も兼ねて書き残しておきます。
ことの始まり:現状把握と原因の切り分け
何はともあれ、まずは何が起きているのかを正確に把握するところから始めました。
1-1. とにかくバージョンを確認してみる
まずはターミナル(Macなどで使う、黒い画面のコマンド入力ツール)を開いて、Claude Codeのバージョン(ソフトウェアの新しさを示す番号のことです)を確認してみました。
インストール方法がいくつかあるツールなので、プログラム本体(実行ファイルと呼ばれます)が違う場所に置かれているかもしれない、と思ったからです。
Bash
# いつも使っているコマンドでバージョンを確認
claude --version
# Homebrew(※後述)で入れた場合の場所を直接指定して確認
/opt/homebrew/bin/claude --version
# bun(※後述)で入れた場合の場所を直接指定して確認
~/.bun/bin/claude --version
案の定、claude --version
と打った時だけが古く、プログラムの場所(これをパスと言います)を直接指定すると、新しいバージョンが表示されました。
この時点で、「ああ、これは『PATH』というPCの設定が原因だな」と、おおよその見当がつきました。
1-2. どの claude
が呼ばれているか特定する
次に、which
というコマンドを使ってみます。これは、「そのコマンドは、PCのどこに置いてあるやつですか?」と尋ねるための命令です。
Bash
which claude
この結果を見れば、どの方法でインストールした claude
が普段使われてしまっているのかが、はっきりと分かります。
試したアップデート手順のまとめ
原因の目星はつきましたが、念のため、各インストール方法ごとの正しい(であろう)アップデート手順も再確認しました。
ちなみに、npm
や bun
、Homebrew
というのは、ソフトウェアをPCに簡単に入れたり、管理したりするためのツール(パッケージマネージャーと呼ばれます)で、いわば「PC用のアプリストア」のようなものです。
方法1: npm(今回、僕が使いたかった方法)
一般的に推奨されている方法のようです。
Bash
# npmを使って、最新版のclaude-codeをPC全体で使えるようにインストール
npm install -g @anthropic-ai/claude-code@latest
方法2: bun
bunというパッケージマネージャーを使っているなら、こちらのコマンドです。
Bash
# bunを使って、最新版をインストール
bun install -g @anthropic-ai/claude-code@latest
方法3: Homebrew
Homebrewで管理している場合はこちらですね。
Bash
# Homebrewに入っているソフトをまとめて最新版にする
brew upgrade claude-code
今回の元凶!「PATH」問題との格闘
僕が今回一番ハマったのが、この PATH
の問題でした。「アップデートは成功したはずなのに、なぜか古い方が呼ばれ続ける」という、あのモヤモヤする現象の正体です。
少し寄り道:そもそも「PATH」って何?
ここで少し、専門的な話になりますが、PATH
について簡単に説明します。
一言でいうと、PATH
は**「PCがコマンドの本体(実行ファイル)を探しに行くための住所録」**のようなものです。
私たちがターミナルで claude
と入力すると、PCはこのPATH
という住所録を上から順番に見ていき、「あ、ここに claude
があった!」と見つけ次第、それを実行します。
今回の問題は、この住所録の上のほうに古い claude
の住所が書かれていて、下のほうに新しい claude
の住所が書かれていたため、PCが古い方を見つけて満足してしまい、新しい方まで探しに行ってくれなかった、というのが原因でした。
解決策:PATH(住所録)の順番を書き換える
原因がわかれば、あとはやるだけです。
ステップ1: 現在のPATH(住所録)を確認
まず、以下のコマンドで現在の「住所録」がどういう順番になっているかを確認しました。
Bash
# PATHの中身を改行で区切って見やすく表示する
echo $PATH | tr ':' '\n'
やはり、古い claude
がある場所が、新しい claude
を入れた場所よりも上に表示されていました。
ステップ2: シェルの設定ファイルを編集する
この住所録の順番を書き換えるため、シェルの設定ファイル(ターミナルを起動するたびに読み込まれる、個人用の設定書のようなもの。僕の場合は .zshrc
というファイルでした)を編集します。
以下のコマンドで、「新しい claude
がある住所を、住所録の一番上に追加してください」とお願いできます。
Bash
# ~/.zshrc ファイルの末尾に、PATHの設定を追記する
echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.zshrc
# 書いたばかりの設定を、すぐに反映させるおまじない
source ~/.zshrc
これでターミナルを再起動して claude --version
を叩くと…無事に新しいバージョンが表示されました!解決です!
ついでに調べた、その他のトラブルシューティング
今回は PATH
が原因でしたが、他にもいくつか考えられる原因と解決策を調べたので、メモとして残しておきます。
ケース1: 「Permission denied(権限がありません)」エラーが出るとき
sudo
(「管理者として実行します!」という強い命令)を使ってもエラーが出る場合は、インストール先のフォルダ自体の持ち主を自分に変更すると解決することが多いようです。
Bash
# npmが使うフォルダの所有者を、今のユーザーに変更する
sudo chown -R $(whoami) $(npm config get prefix)/lib/node_modules
ケース2: 「キャッシュ」が悪さをしているかも
キャッシュとは、PCが一度読み込んだ情報を高速で表示するために、一時的に保存しておくデータのことです。これが古いままだと、うまくアップデートできないことがあります。
Bash
# npmのキャッシュを強制的に削除
npm cache clean --force
# bunのキャッシュを削除
bun pm cache rm
最終手段:クリーンインストール
どうしてもダメなら、関連するものを一度すべてアンインストール(クリーンインストール)して、最初から入れ直すのが一番確実かもしれません。スマホアプリの調子が悪い時に、入れ直すのと同じですね。
Bash
# 思い当たるアンインストールコマンドを全部試す
npm uninstall -g @anthropic-ai/claude-code
bun uninstall -g @anthropic-ai/claude-code
brew uninstall claude-code
まとめ
今回は PATH
の優先順位という、開発環境では「あるある」な問題で時間を取られてしまいました。いろんなツールを試していると、どうしてもPC内の「住所録」が複雑になってしまいがちですね。
この記事が、同じように「Claude Codeのバージョンが上がらない…」と悩んでいる誰かの、そして未来の自分の助けになれば嬉しいです。