Claude Codeインストールエラーの切り分けチェックリスト — 症状別の原因と対処
Claude Codeのインストールが途中で止まる・claudeコマンドが見つからないときの原因を、エラーメッセージ別に切り分けます。PATH・ネットワーク・権限・OS固有の順に公式ドキュメントの対処法をまとめました。
Claude Codeのインストールエラーはエラーメッセージから原因を切り分ける
Claude Codeのインストールが失敗する原因は、エラーメッセージのパターンからほぼ絞り込めます。PATHが通っていない、ネットワーク・証明書でダウンロードが止まる、権限が足りない・古いインストールと競合している、Windowsでシェルを取り違えている、OS・ハードウェア固有のバイナリ問題、のいずれかです。表示されたエラーメッセージから該当箇所へ飛んでください。
| 表示されるエラー | 原因の分類 |
|---|---|
command not found: claude / 'claude' is not recognized | 原因の分類PATH未設定 |
HTMLが返る / curl: (22) 403 | 原因の分類ネットワーク・地域制限 |
curl: (56) TLS connect error Failed to fetch version | 原因の分類ネットワーク・証明書 |
Cask 'claude-code' is unavailable: No Cask with this name exists | 原因の分類Homebrewインデックスの古さ |
権限エラー / 複数のclaudeが競合 | 原因の分類権限・旧インストール残存 |
Illegal instruction dyld: cannot load Killed | 原因の分類OS・ハードウェア固有 |
irm is not recognized bash is not recognized | 原因の分類Windowsのシェル取り違え |
この記事は「インストールコマンドを実行したのに完了しない・claudeが動かない」場面に絞ります。手順そのものはClaude Codeインストール完全ガイドで扱っています。インストール後に発生するエラーはClaude Codeでよくあるエラー10選が対象です。
まず試す価値があるのはclaude doctorです。claude --versionが通る状態まで来ていれば、環境・設定・拡張機能を自動診断し、適用可能な修正を提案します。claude --versionが通らない段階ではclaude doctor自体が動かないため、下記の症状別セクションからエラーメッセージに該当する箇所を探してください。
「command not found」はPATHが原因
インストーラーはclaude本体を配置しますが、その場所がシェルの検索パスに入っていないと、インストール自体は成功していても実行できません。ネイティブインストーラーはmacOS・Linuxでは~/.local/bin/claude、Windowsでは%USERPROFILE%\.local\bin\claude.exeに配置します。
PATHに含まれているかは、OSごとに次のコマンドで確認できます。
echo $PATH | tr ':' '\n' | grep -Fx "$HOME/.local/bin"出力がなければシェル設定に追記します。macOSの既定シェルであるZshの場合は次の通りです。
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.zshrc
source ~/.zshrc
claude --versionWindows PowerShellでは$env:PATH -split ';' | Select-String '\.local\\bin'で確認し、出力がなければユーザーPATHに%USERPROFILE%\.local\binを追加してターミナルを再起動します。修正後も直らない場合は、次の「権限エラーと複数バージョンの競合」に進みます。
ネットワーク・証明書でダウンロードが止まる
インストーラーはdownloads.claude.aiからバイナリを取得します。企業ネットワークやVPN経由でこのホストに到達できないと、次のいずれかの形で失敗します。
- HTMLが返る:
bash: line 1: syntax error near unexpected token '<'やPowerShellのInvoke-Expression: Missing argument in parameter listが出る場合、インストールURLがスクリプトの代わりにHTMLページやエラーステータスを返しています。ボディなしの403も同じ系統です。HTMLページに「App unavailable in region」と表示される場合は地域制限で、サポートされている国の対象外です - ダウンロードが途中で切れる:
curl: (56) Failure writing output to destinationやcurl: (23)は、curl | bashのパイプがスクリプト全体を受け取れなかった合図です - TLSハンドシェイクに失敗する:
TLS connect errorやunable to get local issuer certificateは証明書検証の失敗を示します
原因の切り分けは、まず到達性を直接確認するところから始めます。
curl -sI https://downloads.claude.ai/claude-code-releases/latestHTTP/2 200が返れば経路は生きています。何も返らない、またはCould not resolve hostが出る場合はファイアウォールかプロキシがブロックしています。社内プロキシ配下なら、インストール前に環境変数を設定してから同じコマンドを実行します。
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080
curl -fsSL https://claude.ai/install.sh | bashTLS検査を行う社内プロキシではSELF_SIGNED_CERT_IN_CHAINが典型的なエラーになります。この場合はインストール時に--cacertで社内CA証明書を明示し、インストール後のClaude Code自体にはNODE_EXTRA_CA_CERTS環境変数で同じ証明書バンドルを渡します。プロキシ設定の全体像はClaude Codeプロキシ設定ガイドにまとめています。
WindowsでCRYPT_E_NO_REVOCATION_CHECKやCRYPT_E_REVOCATION_OFFLINEが出る場合は、証明書失効確認そのものがネットワークにブロックされています。curlの--ssl-revoke-best-effortはスクリプト自体のダウンロードには効きません。irm https://claude.ai/install.ps1 | iexかwinget install Anthropic.ClaudeCodeでcurlを迂回するのが解決策です。
どの経路でも到達できない場合は、macOSならbrew install --cask claude-code、Windowsならwinget install Anthropic.ClaudeCodeと、別のインストーラーに切り替える手も残っています。
権限エラーと複数バージョンの競合
~/.local/bin/や~/.claude/への書き込み権限がないと、インストーラーは権限エラーで止まります。書き込み可能かどうかは次のコマンドで確認できます。
test -w ~/.local/bin && echo "writable" || echo "not writable"
test -w ~/.claude && echo "writable" || echo "not writable"書き込み不可なら、ディレクトリを作成し所有者を自分に変更します。
sudo mkdir -p ~/.local/bin
sudo chown -R $(whoami) ~/.local権限エラーとは別に、claudeのバージョンが更新されない・実行のたびに挙動が変わる場合は、複数のインストールが競合している疑いがあります。claudeバイナリは3か所から来る可能性があり、どれが有効になっているかをwhich -a claudeで確認します。
| 配置場所 | インストール方法 |
|---|---|
~/.local/bin/claude | インストール方法ネイティブインストーラー(推奨) |
~/.claude/local/ | インストール方法旧バージョンが作るレガシーnpmローカルインストール |
npmグローバル(npm -g ls @anthropic-ai/claude-code) | インストール方法npm install -gによるグローバルインストール |
複数見つかった場合はネイティブインストールだけを残し、他は削除します。
npm uninstall -g @anthropic-ai/claude-code
rm -rf ~/.claude/localnpm install後にネイティブバイナリが見つからないと言われる場合
@anthropic-ai/claude-codeパッケージ本体はJavaScriptだけで、実行に使うネイティブバイナリはプラットフォームごとのオプション依存パッケージ(@anthropic-ai/claude-code-darwin-arm64等)経由で取得します。npm install時に--omit=optionalや.npmrcのoptional=falseが効いていると、このオプション依存関係ごと省略され、フォールバックは存在しません。設定を外して再インストールします。対応プラットフォームはdarwin-arm64 darwin-x64 linux-x64 linux-arm64とそれぞれのmusl版、win32-x64 win32-arm64のみです。
npm由来の権限エラーに繰り返し当たる場合は、sudoで権限を回避するより、ネイティブインストーラーへの乗り換えのほうが根本解決になります。
Windows特有のインストールエラー
Windowsのインストールエラーの大半は、シェルの取り違えが原因です。curl -fsSL ... | bashはmacOS/Linux用、irm https://claude.ai/install.ps1 | iexはPowerShell用で、混ぜると失敗します。
| エラー | 原因 | 対処 |
|---|---|---|
'irm' is not recognized | 原因CMDでPowerShell用コマンドを実行 | 対処PowerShellを開き直すかinstall.cmdを使う |
A parameter cannot be found ... 'fsSL' | 原因PowerShellでmacOS/Linux用curlコマンドを実行 | 対処irm https://claude.ai/install.ps1 | iexに切り替える |
'bash' is not recognized | 原因Windowsでbash用インストーラーを実行 | 対処PowerShellインストーラーに切り替える |
Claude Code on Windows requires either Git for Windows (for bash) or PowerShell | 原因PowerShellとGit Bashのどちらも見つからない | 対処下記の手順でどちらかを導入する |
もう一つ見落としやすいのが、スタートメニューにWindows PowerShellとWindows PowerShell (x86)の2つが並んでいる点です。x86版は32ビットプロセスとして動くため、64ビットマシンでもClaude Code does not support 32-bit Windowsが出ます。同じウィンドウで[Environment]::Is64BitOperatingSystemを実行し、Trueならx86サフィックスのないほうを開き直します。
PowerShellインストーラーがThe process cannot access the file ... because it is being used by another processで止まる場合もあります。アンチウイルスが%USERPROFILE%\.claude\downloads内の部分ダウンロードファイルをスキャン中の可能性があります。他のインストーラーのウィンドウを閉じ、ダウンロードフォルダを削除してから再実行します。
Claude Code on Windows requires either Git for Windows (for bash) or PowerShellというエラーは、PowerShellとGit Bashのどちらも見つからなかったことを意味します。Git for Windowsは必須ではなく、無い場合はPowerShellツールが使われる設計です。
PowerShellがPATHに無い場合は、既定の配置先であるC:\Windows\System32\WindowsPowerShell\v1.0\をPATHに追加するか、pwshコマンドを提供するPowerShell 7を導入します。Git for Windowsを入れる場合はgit-scm.com/downloads/winからダウンロードし、セットアップ中に「Add to PATH」を選択してからターミナルを再起動します。
Gitが既にインストール済みなのに見つからない場合は、settings.jsonのenv.CLAUDE_CODE_GIT_BASH_PATHでbash.exeの場所を明示します。パスが正しくファイルも存在するのにエラーが続く場合は、EDRやAppLockerなどのエンドポイントセキュリティがcmd.exeの子プロセス生成をブロックしている可能性があります。v2.1.116以降はファイルシステムを直接確認する方式に変わっているため、まずclaude updateで最新化してから切り分けます。
macOS・Linux・WSL特有のインストールエラー
OSごとに原因の性格が異なります。まとめて症状から引けるようにしました。
| 症状 | 環境 | 原因 |
|---|---|---|
Illegal instruction | 環境Linux/古いVM | 原因CPUがAVX等の命令セットを未サポート |
dyld: cannot load Symbol not found | 環境macOS | 原因macOSバージョンがバイナリの要求より古い |
Error loading shared library libstdc++.so.6 | 環境Linux | 原因musl/glibcのバイナリ取り違え |
Killed(終了コード137) | 環境低メモリLinuxサーバー | 原因インストール中のOOM Killer |
WSLでExec format error | 環境WSL1 | 原因ネイティブバイナリのローダー非互換 |
Illegal instructionには2種類の原因があります。1つはアーキテクチャの取り違え(ARMサーバーにx86バイナリ等)で、uname -mの結果とダウンロードされたバイナリが一致しているか確認します。もう1つは2013年より前のCPUやAVXをゲストに渡さない仮想化環境で、grep -m1 -ow avx /proc/cpuinfoが空なら該当します。この場合、別のインストール方法を試しても解決しません。同じネイティブバイナリを取得するだけだからです。
macOSでのdyld系エラーは、バイナリの要求するmacOSバージョンより実機が古いサインです。特にlibicucore絡みのSymbol not foundが出たら、Appleメニューの「このMacについて」でバージョンを確認し、macOS 13.0以上に更新します。Homebrew等の別インストーラーに切り替えても同じバイナリを落とすため解決しません。
ldd --versionの出力からmusl/glibcの取り違えを切り分けられます。GNU libcが出るのにmuslバイナリを取得していた場合はインストールをやり直し、実際にAlpine LinuxなどmuslベースOSにいる場合はapk add libgcc libstdc++ ripgrepで不足パッケージを補います。
低メモリのLinuxサーバーでは、インストールに必要な約512MBの空きメモリが確保できずOOM Killerに落とされることがあります。2GBのスワップファイルを作成してから再試行すると解消することが多いです。
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
curl -fsSL https://claude.ai/install.sh | bashWSL1でExec format errorが出るのは、既知のネイティブバイナリ回帰が原因です。最も確実な修正はPowerShellからwsl --set-version <DistroName> 2でWSL2へ変換することで、WSL1に留まる場合は動的リンカー経由でclaudeを呼ぶラッパー関数を~/.bashrcに追加する回避策があります。
Dockerコンテナでのインストールがハングする場合は、rootのまま/にいるとインストーラーがファイルシステム全体をスキャンしてメモリを食い潰すのが原因です。WORKDIR /tmpを設定してからインストールを実行すると回避できます。
インストール後の初回ログインだけ止まる場合
claude --versionは通るのに初回ログインが完了しない場合は、インストールというよりOAuthのリダイレクト経路の問題です。WSL2・SSH経由のリモートマシン・コンテナ内でClaude Codeを動かしていると、ブラウザが別のホストで開き、リダイレクト先がClaude Codeのローカルコールバックサーバーに届きません。この場合、ブラウザにはログインコードが表示されるだけなので、ターミナルのPaste code here if promptedにそのコードを貼り付ければログインは完了します。
ブラウザ自体が開かないWSL2環境では、BROWSER環境変数にWindows側のブラウザパスを設定してからclaudeを起動すると開くようになります。貼り付け操作自体が反応しない場合は、標準入力からコードを受け取るclaude auth loginを使う手もあります。
インストールが完全に終わった状態で、ログインは通るのに使い続けているうちに401やAPIエラーが出るようになった場合は、インストール時の問題ではありません。Claude Codeでよくあるエラー10選の起動時認証エラーの節で扱っています。
それでも直らないときの切り分け手順
ここまでの分類に当てはまらない、あるいは対処しても再発する場合は、次の順で情報を集めます。
claude --versionが通る状態まで来ているならclaude doctorを実行し、自動診断レポートを取得するclaudeが起動すらしない場合は、OS・実行したインストールコマンド・完全なエラー出力をそろえてからGitHub Issuesで既知の問題を検索する- 該当する既知issueがなければ、上記の情報一式を添えて新規issueを起票する
- セッションが開ける状態まで来ているなら、Claude Code内の
/feedbackからも報告できる
エラーメッセージそのものをそのまま検索キーワードにするのも有効です。Illegal instructionやdyld: cannot loadのような固有の文字列は、同じ環境で先に踏んだ人の報告に直接たどり着きやすくなっています。
よくある質問
会社PCで管理者権限がない場合はインストールできますか
ネイティブインストーラーはユーザーのホームディレクトリ配下(~/.local/binと~/.claude)にのみ書き込むため、管理者権限は不要です。エラーが出る場合は、社内ポリシーでホームディレクトリ自体への書き込みが制限されているか、プロキシ・ファイアウォールがdownloads.claude.aiをブロックしている可能性が高いです。
npmでインストールしたものをネイティブインストーラーに切り替えられますか
できます。npm uninstall -g @anthropic-ai/claude-codeでグローバルパッケージを削除し、レガシーローカルインストールが残っていればrm -rf ~/.claude/localも実行してから、ネイティブインストーラーを実行します。設定ファイル(~/.claude/配下)はインストール方式を問わず共通なので引き継がれます。
Homebrewでインストールすると最新版より古いことがあるのはなぜですか
claude-code caskは安定チャネルを追跡しており、最新リリースから約1週間遅れるのが仕様です。最新版をHomebrew経由で使いたい場合はbrew install --cask claude-code@latestを使います。Cask 'claude-code' is unavailable: No Cask with this name existsが出る場合はcaskインデックスのローカルコピーが公開前の状態なので、brew updateでインデックスを更新してからbrew install --cask claude-codeを実行し直します。
FreeBSDやサポート外のプラットフォームでは動きませんか
プリビルドバイナリはdarwin-arm64 darwin-x64 linux-x64 linux-arm64とそれぞれのmusl版、win32-x64 win32-arm64のみに提供されています。FreeBSDは対象外で、v2.1.205より前のインストーラーはFreeBSDをLinuxと誤認して実行できないバイナリを配ってしまう不具合がありました。
診断コマンドのclaude doctorとclaude --versionは何が違いますか
claude --versionはバイナリが実行できるかどうかだけを確認します。claude doctorはそれに加えて、設定ファイル・拡張機能・ripgrepなどの周辺コンポーネントまで踏み込んで診断し、可能な修正案を提示します。claude自体が起動しない段階ではclaude --versionから、起動はするが挙動がおかしい段階ではclaude doctorから試すのが効率的です。
まとめ
Claude Codeのインストールエラーは、エラーメッセージから原因の分類さえ特定できれば大半は数コマンドで解消します。command not foundならPATH、HTMLや403・TLSエラーならネットワークと証明書です。権限エラーや挙動不安定なら旧インストールとの競合、それ以外のOS固有クラッシュはバイナリとハードウェアの不一致です。
正常にインストールできた後の使い方はClaude Codeインストール完全ガイド、使い始めてからのエラーはClaude Codeでよくあるエラー10選にまとめています。社内プロキシ環境の恒久対応はClaude Codeプロキシ設定ガイドを参照してください。