Claude Media
Installation was killedエラーの原因と対処 — Claude Code

Installation was killedエラーの原因と対処 — Claude Code

インストール中に「Installation was killed before it could finish」と出て止まるのはメモリ不足が原因です。exit code 137の意味とスワップ追加の手順をまとめます。

「Installation was killed」はメモリ不足でインストーラーが強制終了した合図

インストールスクリプトを実行した直後に次のメッセージが出て止まる場合、原因はほぼ一つに絞れます。OS側がインストーラーのプロセスを強制終了させたということです。

Setting up Claude Code...
bash: line 183: 34803 Killed    "$binary_path" install
Installation was killed before it could finish (exit code 137). This usually means the system ran out of memory.
Claude Code needs roughly 512MB of free memory to install. Free up memory, then run this script again.

exit code 137はUNIX系OSで「シグナル9(SIGKILL)を受け取ってプロセスが終了した」ことを示す値です。Linux環境でこの終了コードが出る場合、原因のほとんどはカーネルのOOM Killer(out-of-memory killer)です。空きメモリが尽きたと判断したカーネルが、実行中のプロセスを強制的に選んで終了させます。小さめのVPSやクラウドの最小インスタンスで特に起きやすい現象です。

インストール自体に必要な空きメモリはおよそ512MBです。動かす段階(claudeコマンドの実行)ではさらに多く必要で、公式の動作要件は4GB以上のRAMを前提にしています。この記事はインストール時点でのOOM Killer対処に絞り、動作時の必要スペックには踏み込みません。

対処 — メモリを確保するか、スワップを追加する

最も確実なのはスワップ領域の追加です。物理メモリが足りなくても、ディスクを一時的なオーバーフロー領域として使うことでインストールを完走させられます。

sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile

スワップを有効化したら、インストールスクリプトを再実行します。

curl -fsSL https://claude.ai/install.sh | bash

スワップを追加できない・追加したくない環境では、他のプロセスを一時的に止めてメモリを空けるだけでも通ることがあります。ビルドジョブやコンテナの並列実行と時間帯が重なっていないかも確認してください。それでも足りない場合は、インスタンスサイズを上げる以外に解決策はありません。4GB以上のRAMが公式の動作要件なので、512MBぎりぎりのインスタンスはインストールが通っても実運用でつまずきます。

exit code 137という数字自体にも意味があります。UNIX系OSでは、シグナルを受けて終了したプロセスの終了コードは「128 + シグナル番号」で表現される慣習があり、SIGKILL(強制終了シグナル)の番号は9です。128 + 9 = 137という計算がそのまま終了コードに現れています。表示されるログの行番号やプロセスIDはバージョンや実行のたびに変わりますが、Killedという単語と137という数字の組み合わせ自体がOOM Killerの典型的な痕跡です。

メモリ状況を実行前に確認する

スワップを追加する前に、今どれだけ空きメモリがあるかを確認しておくと無駄な作業を避けられます。

free -h

available列の値がインストールに必要な512MBを大きく下回っている場合、スワップを追加せずにプロセスを止めるだけでは足りない可能性が高いです。逆に空きが512MB前後でぎりぎり足りていなそうな場合は、他の常駐プロセスを一つ止めるだけで解決することもあります。

小さめのインスタンスでこの現象が起きやすいOSの組み合わせも把握しておくと切り分けが早くなります。Claude Codeが対応するLinuxディストリビューションは、Ubuntu 20.04以降・Debian 10以降・Alpine Linux 3.19以降です。特にAlpine Linuxベースの軽量コンテナはデフォルトのメモリ割り当てが少なく、OOM Killerに当たりやすい環境の一つです。

Dockerコンテナでは原因が別にある

Dockerコンテナ内でrootとして/から直接インストールスクリプトを実行すると、メモリ不足と似た症状のハングが起きることがあります。原因はOOM Killerではなく、インストーラーがファイルシステム全体をスキャンしてしまうことです。WORKDIRで作業ディレクトリを限定してからインストールすると回避できます。

WORKDIR /tmp
RUN curl -fsSL https://claude.ai/install.sh | bash

Docker Desktopを使っている場合、ビルド用コンテナはDocker Desktop自体に割り当てられたメモリを共有します。Settings → Resourcesでメモリ上限を上げてからビルドし直す方法もあります。

v2.1.200からエラーの理由がその場で分かるようになった

v2.1.200より前のインストールスクリプトは、プロセスが強制終了されてもシェルのKilledという一言しか出しませんでした。原因がメモリ不足なのか別の問題なのか、メッセージからは判断できませんでした。

バージョン表示されるメッセージ
v2.1.200より前表示されるメッセージKilled(理由の説明なし)
v2.1.200以降(Linuxでexit code 137)表示されるメッセージInstallation was killed before it could finish (exit code 137). This usually means the system ran out of memory. + 必要メモリ量の案内
v2.1.200以降(macOS、または137以外の終了コード)表示されるメッセージInstallation was killed before it could finish (exit code <N>)(OOM説明は付かない)

macOSでも同じ137が出ることはありますが、OOM Killerの説明が付くのはLinux限定です。macOSのメモリ管理はカーネルの挙動が異なり、同じ終了コードでも原因の断定に至らないためです。WSL上のインストールもLinux向けのインストールスクリプトを使うため、WSL環境でこのエラーに当たった場合はLinuxと同じ詳しいメッセージが表示され、対処法もLinuxと変わりません。ネイティブのWindowsインストールスクリプト(PowerShell経由のインストール)はこのメッセージの仕組み自体を持たないため、Windows単体の環境でこの文言を見ることはありません。

このメッセージが追加された背景には、インストール失敗の原因究明にかかるサポート負荷を減らす狙いがあると考えられます。以前のKilled一言だけでは、利用者は自分でexit codeの意味を調べるところから始める必要がありました。原因とその場での対処(必要メモリ量とスワップという具体策)を最初のエラー出力自体に埋め込む方向は、インストール・アップデート周りのエラーメッセージ全体で近い時期に進んだ整備の一つです。

よくある質問

インストールは通ったのにClaude Codeの起動が重いです

インストールに必要なメモリ(約512MB)と、実行時に必要なメモリ(公式要件で4GB以上のRAM)は別の基準です。インストールがスワップで通っても、実運用のメモリが足りていない可能性があります。スワップは緊急回避であり、恒常的な運用には物理メモリの増強かインスタンスサイズの見直しが必要です。

この現象はインストール直後の実行時にも起きますか

このメッセージ自体はclaude installステップ限定です。インストールが完了した後、claudeコマンドを実際に動かして同じようにメモリ不足で強制終了する場合は、表示形式が異なる別のエラーとして扱われます。実行時のメモリ不足は必要RAMそのもの(4GB以上)が足りていないサインなので、スワップでの一時しのぎより増強を優先してください。

スワップファイルは追加したままでよいですか

インストール後に外す必要はありません。ディスク容量に余裕があれば残しておいて問題なく、今後のアップデートでも同じ理由でメモリ不足が起きたときの保険になります。容量が厳しい場合はsudo swapoff /swapfileで無効化してから削除できます。

スワップを使うとインストール後の動作が遅くなりますか

スワップはあくまでインストール完走のための一時的な緩衝材で、インストール自体はディスクI/Oが多い処理ではないため体感速度への影響はほとんどありません。ただし、Claude Codeを実際に使い始めてから常にスワップに頼るような状態(物理メモリの慢性的な不足)が続く場合は、実行時の応答が遅くなります。その場合はスワップで凌ぐのではなく、公式要件の4GB以上のRAMを満たすインスタンスに切り替えることを検討してください。

クラウドの無料枠インスタンスでよく起きますか

起きやすい傾向はあります。多くのクラウドプロバイダーの無料枠・最小プランは、512MB〜1GB程度のRAMに設定されています。インストール処理そのものだけでなくOS自体が使うメモリも合わせると、公式が案内する512MBの空き容量に届かないことがあります。無料枠での動作確認が目的なら、最初からスワップを前提に構築しておくと再現性のあるつまずきを避けられます。

curl: (23)curl: (56)など別のエラーが出ます

これは「Installation was killed」とは別系統の失敗で、OOM Killerではなくネットワーク経路(社内プロキシやTLS証明書)が原因です。Claude Codeインストールエラーの切り分けチェックリストのネットワーク・証明書の節にまとめています。

free -hの見方が分かりません

available列が、今すぐ新しいプロセスに割り当てられる実質的な空きメモリの目安です。free列だけを見ると実際より少なく見えることがありますが、これはOSがキャッシュに使っている分を含むためです。キャッシュは必要に応じて解放されるので、available列の方が実態に近い数値になります。availableが512MBを大きく下回っているなら、スワップ追加かインスタンスサイズの見直しに進んでください。

Killedとだけ表示されてこのメッセージが出ません

v2.1.200より前のインストールスクリプトを使っている可能性があります。原因の説明が付かないだけで対処は同じです。まずスワップ追加か空きメモリの確保を試してください。

対処の順番は、①free -hで空きメモリを確認、②足りなければスワップを追加して再実行、③それでも通らなければ他プロセスの停止、④最後にインスタンスサイズの見直し、が遠回りの少ない進め方です。Docker環境で発生している場合は、この順番に入る前にWORKDIRの指定を確認してください。

まとめ

「Installation was killed before it could finish」は、Linuxでの大半のケースがOOM Killerによるメモリ不足です。2GBのスワップファイルを追加して再実行するのが最短の対処で、それでも通らない場合は他プロセスの停止かインスタンスサイズの見直しに進みます。Dockerコンテナでのハングは原因が別(ファイルシステムスキャン)なので、WORKDIRの指定で切り分けてください。インストール後のアップデート周りのエラーはClaude Codeアップデートの方法で扱っています。

この記事を共有:XはてブLinkedIn