Claude Codeのアップデートが反映されない:自動更新の仕組み・claude update・二重インストール
Claude Codeのバージョンが古いまま、claude updateしても変わらない、警告が出続ける原因(自動更新の反映タイミング、DISABLE_AUTOUPDATER、ネイティブとnpm/WinGetの混在、PATH順序)と対処を、公式ページと2.1.261の実出力で整理(2026-09-14確認)。
「Claude Code を更新したのに claude --version が古いまま」「新機能の説明どおりに動かない」というとき、原因は3つのどれかです。(1) 更新は済んでいるが次回起動待ち、(2) 更新が環境変数や配布経路の都合で無効化されている、(3) 更新したのとは別のバイナリがシェルから呼ばれている。 どれに当たるかは claude doctor の数行でほぼ判定できます。
この記事は公式 setup ページの「Update Claude Code」節と troubleshoot-install ページを根拠に、手元の Claude Code 2.1.261(Windows ネイティブ)で確認した出力を貼りながら、切り分け手順をまとめます。Windows 固有のシェルやパスの話はWindows ネイティブ環境のトラブルに分けています。
- ネイティブ版は起動時と定期的に確認し、次回起動で反映。 動いているセッションには入りません。
claude doctorのLast update attemptとPathを見る。 更新の成否と、どのバイナリが動いているかがここに出ます。DISABLE_AUTOUPDATERは背景更新だけを止める。claude updateは動きます。全部止めるのはDISABLE_UPDATES。- 複数経路の混在が最多の原因。
which -a claude/where.exe claudeで洗い出し、ネイティブ1本に寄せます。
自動更新はこう動く
公式 setup ページの記述を時系列に並べるとこうなります。
- 起動時更新を確認ネイティブ版は起動時と、実行中も定期的に新バージョンを確認する
- 背景ダウンロードとインストールバックグラウンドで進む。macOS/Linux は ~/.local/share/claude/versions/ に版ごとに置かれる
- 次回起動新バージョンが有効に実行中のセッションには反映されない。閉じて claude を起動し直す
- 任意claude doctor で確認Last update attempt 行に直近の試行結果と版・日付が出る
手元の claude doctor ではこう出ました。
Running: native (2.1.261)Path: C:\Users\<user>\.local\bin\claude.exeConfig install method: nativeAuto-updates: disabled (set by env: DISABLE_AUTOUPDATER)Auto-update channel: latestLast update attempt: success → 2.1.261 (2026-09-04)読み方はそのままです。Running が今動いている版、Path がその実体、Auto-updates が自動更新の状態と無効化の理由、Last update attempt が直近の試行結果です。この環境では Claude Desktop 経由で起動しているため DISABLE_AUTOUPDATER が環境変数として渡っており、背景更新が止まっていることが一目で分かります。Windows でも ~/.local/share/claude/versions に 2.1.240 2.1.251 2.1.261 の3版が残っているのを確認しました。
claude update の応答は3種類あります。更新が入ると Successfully updated from <old version> to version <new version>、最新なら Claude Code is up to date (<version>)、Homebrew / WinGet / apk 管理の場合は Claude is up to date! です。最後のものが出るなら、更新はパッケージマネージャ側でやる必要があります。
$ claude update --helpUsage: claude update|upgrade [options]Check for updates and install if available
$ claude install --helpUsage: claude install [options] [target]Install Claude Code native build. Use [target] to specify version (stable, latest, or specific version)Options: --force Force installation even if already installed原因1:反映待ち・チャンネル・最低バージョン
次回起動を待っていない。 一番多いのがこれです。Last update attempt: success → X なのに Running が古ければ、閉じて起動し直すだけです。
stable チャンネルにいる。 autoUpdatesChannel が "stable" だと「通常1週間ほど古い、大きなリグレッションを含む版を飛ばした版」に追従します。最新機能をすぐ試したいなら "latest"(既定)です。/config の「Auto-update channel」か settings.json で切り替えます。
{ "autoUpdatesChannel": "stable"}latest から stable に切り替えると、/config は「今の版に留まるか、ダウングレードを許すか」を尋ね、留まる場合は minimumVersion にその版を書き込みます。minimumVersion は下限なので、これが設定されていると stable の古い版には下がりません。逆に latest に戻すとクリアされます。
組織の requiredMinimumVersion / requiredMaximumVersion。 managed settings でこれが効いていると、範囲外では起動自体を拒否します。Error reference の Claude Code ... is older than the minimum version required by your organization's policy がこれです。
原因2:更新が無効化されている
DISABLE_AUTOUPDATER を "1" にすると背景更新が止まります。settings.json の env に書く形が公式の例です。
{ "env": { "DISABLE_AUTOUPDATER": "1" }}確認は claude doctor の Auto-updates 行が disabled (set by env: DISABLE_AUTOUPDATER) になっていることです(上の実出力がまさにこの状態)。この変数は背景での確認だけを止め、claude update と claude install は動きます。 手動更新まで含めて全経路を塞ぐのは DISABLE_UPDATES で、社内で独自配布している場合向けです。
「自分で設定した覚えがないのに disabled」なら、この記事の環境のように親プロセス(Desktop アプリや IDE 拡張、CI)が環境変数を渡している可能性を疑ってください。claude doctor は set by env: と理由を書いてくれます。
原因3:別のバイナリが呼ばれている(最多)
更新したのに変わらない、という相談で実際に一番多いのがこれです。公式 troubleshoot ページの「Check for conflicting installations」をそのまま実行します。
# macOS / Linux / Git Bashwhich -a claudels -la ~/.local/bin/claude # ネイティブ版。versions/ へのシンボリックリンクなら正常ls -la ~/.claude/local/ # 旧式のローカル npm インストールnpm -g ls @anthropic-ai/claude-code 2>/dev/null# Windows PowerShellwhere.exe claudeTest-Path "$env:USERPROFILE\.local\bin\claude.exe"npm -g ls @anthropic-ai/claude-code手元の実行結果です。
$ which -a claude/c/Users/<user>/.local/bin/claude
$ npm ls -g @anthropic-ai/claude-codeC:\Users\<user>\AppData\Roaming\npm `-- @anthropic-ai/[email protected]claude コマンドとして見つかるのはネイティブの1件だけですが、npm のグローバル領域には別パッケージの依存として 1.0.108 という 1 年以上前の版が残っていました。今回は依存としてネストしているだけで bin にリンクされていないので無害ですが、npm install -g @anthropic-ai/claude-code を一度でも打った環境なら、PATH の順序次第でこちらが先に起動します。claude --version が古い版を返し、claude update は「ネイティブ側」を更新しているのに反映されない、という構図です。
公式はネイティブ1本に寄せることを推奨しています。残す側を決めたら、それ以外を消します。
npm uninstall -g @anthropic-ai/claude-coderm -rf ~/.claude/local # 旧ローカル版brew uninstall --cask claude-code # HomebrewRemove-Item -Recurse -Force "$env:USERPROFILE\.claude\local"winget uninstall Anthropic.ClaudeCodenpm 版のまま最新にしたい場合、npm install -g @anthropic-ai/claude-code@latest です。公式は npm update -g について「元のインストール時の semver 範囲を尊重するので最新に上がらないことがある」と注意しています。上書きインストールで npm error code ENOTEMPTY が出たら、エラーの npm error path 行が示すディレクトリと、隣の .claude-code-* 一時ディレクトリを消してから再実行します。
Remove-Item -Recurse -Force "$(npm root -g)/@anthropic-ai/claude-code", "$(npm root -g)/@anthropic-ai/.claude-code-*"npm install -g @anthropic-ai/claude-codenvm で Node の版を切り替えている人は要注意です。グローバルパッケージは Node の版ごとに別ディレクトリなので、nvm use を変えた瞬間に「別の claude」が見えるようになります。手元も nvm4w で Node 24.8.0 / 20.19.0 / 20.16.0 を切り替えられる構成で、npm のグローバル prefix は C:\Users\<user>\AppData\Roaming\npm でした。
そのほかの詰まり方
PowerShell インストーラーは成功したのに古いまま。 troubleshoot ページの症状表に「PowerShell installer completes but claude is not found or shows an old version」があり、対処は %USERPROFILE%\.local\bin を User PATH に追加して新しいターミナルを開くことです。既存のターミナルは PATH を読み直しません。
claude update が Checking for updates の後で固まる。 v2.1.214 より前の既知の問題で、~/.zshrc や ~/.bashrc などシェル設定ファイルのパスにディレクトリが置かれていると発生しました。claude doctor も無出力で固まります。ls -ld ~/.zshrc ~/.bashrc ~/.bash_profile ~/.bash_login ~/.profile ~/.config/fish/config.fish で d 始まりの行を探し、退避するか、claude update が使えないのでインストールスクリプトを再実行して v2.1.214 以降に上げます。
ダウンロードが途中で切れる。 Error reference の The connection dropped while downloading the update と Download timed out: exceeded the total deadline はネットワーク起因で、再試行が対処です。企業プロキシ配下では HTTPS_PROXY を設定してから claude update を実行します。
新しいモデルが選べない。 Claude Code ... does not support this model; version ... or newer is required は Claude Code の版が古いことを意味します。更新して起動し直せば解決します。逆に言うと、モデル関連のエラーは更新トラブルの発見口になります。
独自ランチャーを置いている。 ~/.local/bin/claude を自作スクリプトやシンボリックリンクに差し替えている場合、v2.1.207 以降は自動更新も claude update もそれを残し、新版は versions/ に置くだけになります。どの版を動かすかはランチャー次第で、判別できないので全版がディスクに残り続けます。claude doctor が「インストーラーが作ったものではないランチャー」を報告します。Claude Code に管理を戻すには ~/.local/bin/claude を消して claude update です。
特定の版を入れる・強制再インストール
「最新で壊れたので一つ前に戻したい」「壊れたので入れ直したい」場合、インストーラーに版か チャンネルを渡します。claude install <target> --force でもできます。
# Windows PowerShell(stable / latest / 版番号のいずれか)& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) stable& ([scriptblock]::Create((irm https://claude.ai/install.ps1))) 2.1.89# macOS / Linux / WSLcurl -fsSL https://claude.ai/install.sh | bash -s stablecurl -fsSL https://claude.ai/install.sh | bash -s 2.1.89インストール時に選んだチャンネルが、その後の自動更新の既定チャンネルになります。版番号を渡した場合は claude --version がその番号を返すことを確認してください。
切り分けチェックリスト
上から順に見れば、どのケースかは数分で決まります。
1. claude --version # 今動いている版2. claude doctor # Running / Path / Auto-updates / Last update attempt3. which -a claude または where.exe claude # 経路が2つ以上ないか4. npm -g ls @anthropic-ai/claude-code # npm 版の残骸5. claude update # 応答が Successfully / up to date / Claude is up to date! のどれか6. 起動し直す # 反映は次回起動3 で複数出たらネイティブ以外を消す、5 で Claude is up to date! ならパッケージマネージャ側で更新する、Auto-updates: disabled なら誰がその環境変数を渡しているか探す。この3分岐で大半が片づきます。
まとめ
- ネイティブ版は起動時と定期的に確認し、次回起動で反映される。実行中のセッションには入らない
claude doctorのRunning/Path/Auto-updates/Last update attemptで状態がすべて読めるDISABLE_AUTOUPDATERは背景更新だけ止め、claude updateは動く。全部止めるのはDISABLE_UPDATES- 最多の原因は別経路のバイナリ。
which -a/where.exeで洗い出し、ネイティブ1本に寄せる - npm 版は
@latest指定で更新(npm update -gは不可)、ENOTEMPTYは残骸ディレクトリを消す
更新後に権限や hooks の挙動が変わったと感じたら、settings.json 逆引きリファレンスのバージョン依存キーを確認してください。
関連して読む
claude-code・npmを続けて読む
· 参考リンク 6件egov-law-mcpが動かない時の対処法|npx・Node.js・Windows接続エラー
e-Gov法令MCP(@codeagentjp/egov-law-mcp)がClaude CodeやCursorで接続失敗する時の切り分け手順を、npx解決、Node.jsバージョン、Windows固有、e-Gov API側の4段階で解説します。
claude-code・troubleshootingを続けて読む
· 参考リンク 4件Claude Codeのログイン・OAuthエラー対処:/loginが通らない・APIキーが勝つ・組織違い
Claude Codeで/loginが失敗する、ブラウザが開かない、ANTHROPIC_API_KEYが勝ってサブスクが使われない、組織アカウントを取り違えるといった認証トラブルを、公式docsの認証優先順位とclaude auth系コマンドの実出力で整理します(2026-09-14確認)。
この記事の情報・検証メモ
- claude-code
- troubleshooting
- npm
- 公開日
- 情報確認
- 参考リンク
- 3件
- 更新性
- 定期更新
仕様・料金・提供範囲が変わりやすいテーマは、公開日・更新日・情報確認日を分けて管理します。 導入前には必ず記事末尾の一次情報と公式ドキュメントで最新状況を確認してください。