Claude Codeのインストールが「Killed」で落ちる原因、公式ドキュメントで潰した——格安VPSのメモリ不足対処法
Claude CodeをVPSにインストールすると出る「Killed」エラーの正体を解説。Linux OOM Killerの仕組み、スワップ追加の手順、Dockerでインストールがハングする別問題まで、公式ドキュメントベースで整理した。
エンジニアのゆとです。
格安VPSにClaude Codeを入れようとしてインストールコマンドを叩いたら、途中で何も説明なくKilledとだけ出て止まる——という経験をした人はそれなりにいると思う。エラーメッセージらしいメッセージが出ないので、最初は何が起きたのか見当がつかない。ネットワークの問題かと思ってcurlだけ何度も打ち直したり、権限の問題を疑ってsudoを付けてみたり、的外れな対処をしがちなポイントでもある。
正体はシンプルで、メモリ不足だ。ただ「メモリ不足」で検索すると、Claude Code実行中の大規模プロジェクト解析でメモリを食う話ばかり出てきて、インストール時点でのこのKilledとは別問題として語られていることが多い。この記事はインストール時点のKilledに絞って、公式ドキュメントとGitHub Issueをベースに原因と対処法を整理した。
結論 — KilledはOOM Killerがインストールプロセスを強制終了したサイン
先に結論を書く。
Linux環境でKilledとだけ出てインストールが止まるのは、ほぼ確実にLinuxカーネルのOOM Killer(Out-Of-Memory Killer)が、メモリ不足を理由にclaude installのプロセスを強制終了したのが原因だ。ネットワークの問題でも権限の問題でもない。
Anthropicの公式トラブルシューティングドキュメントにも、この症状は「低メモリLinuxサーバーでのインストール中のKilled」として明記されている。
対処法は「メモリを増やす」の一択で、具体的には次の3つのどれかになる。
- スワップ領域を追加する(最速)
- 他のプロセスを止めてメモリを解放する
- より大きいインスタンスに変える(根本解決)
以下、順番に見ていく。
実際に出るエラーメッセージ
公式ドキュメントに載っている再現例はこうだ。
Setting up Claude Code...
bash: line 142: 34803 Killed "$binary_path" install ${TARGET:+"$TARGET"}
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.
このメッセージが出るなら比較的新しいバージョンのインストーラーを使っている。v2.1.200より前のインストーラーだと、原因の説明もなくKilledという1行だけを吐いて終わっていた。自分がこの問題を最初に踏んだ人の報告を追ったときも、「意味不明な1行だけ出て終わる」という書き込みが多かったのはこのバージョン差のせいだ。
exit code 137という数字も覚えておくといい。128 + 9(SIGKILL)で、Linuxのプロセスがシグナル9で強制終了させられたことを示す一般的な符号だ。OOM Killer以外の理由でも出ることはあるが、インストール中の文脈でこれが出たら、まずメモリ不足を疑うのが最短ルートになる。
なぜ起きるのか — LinuxのOOM Killerの仕組み
Linuxカーネルは、システム全体のメモリが枯渇しそうになると、動作を続けさせるために特定のプロセスを選んで強制終了する。これがOOM Killerだ。優先度の低いプロセスや、メモリ使用量が大きいプロセスから狙われる仕組みになっている。
claude installステップは、バイナリの展開やセットアップ処理でそれなりにメモリを使う。公式ドキュメントによれば、インストールには約512MBの空きメモリが必要で、これに満たない環境では高い確率でOOM Killerに刈られる。
これが厄介なのは、小規模なVPSやクラウドインスタンスほど起きやすいという点だ。月額数百円クラスの格安プランは、RAM 512MB〜1GB程度に設定されていることが珍しくない。実際、当サイトで検証したABLENET VPSのL0プラン(メモリ0.5GB)も、「AI用途には非推奨、Difyのコンテナを起動しただけで詰まる」という結論になっている。Claude Codeのインストールでも同じ壁に当たると考えていい。

対処法1: スワップ領域を追加する
一番早い直し方は、スワップ領域(ディスクをメモリの代わりに使う領域)を追加すること。物理RAMが足りなくても、スワップがあればインストールを完走できる可能性が高い。
公式ドキュメントが案内している手順はこう。2GBのスワップファイルを作成して有効化する。
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
有効化できたら、インストールをやり直す。
curl -fsSL https://claude.ai/install.sh | bash
fallocateが使えない古めのファイルシステムの場合はddで代用できる(if=/dev/zero of=/swapfile bs=1M count=2048のように書く)。作成に少し時間がかかるだけで、結果は同じだ。
再起動後もスワップを維持したいなら、/etc/fstabに1行追加しておく。
/swapfile none swap sw 0 0
ここで正直に書いておくと、スワップはあくまで応急処置だ。ディスクI/Oはメモリより圧倒的に遅いので、スワップに頼った状態のままClaude Codeを日常的に動かすと、体感速度がかなり落ちる。インストールだけ通したいならこれで十分だが、実運用に使うVPSなら次の対処法3が本筋になる。
対処法2: 他のプロセスを閉じてメモリを解放する
一時的にメモリを空けたいだけなら、動いている他のプロセスを止めるのも手だ。
free -m
でメモリの空き状況を確認できる。Dockerコンテナやデータベース、監視エージェントなど、常駐しているプロセスがあれば一旦止めてからインストールを試す。
とはいえ格安VPSでこの方法が効くケースは限られる。そもそもOSの常駐プロセスだけで大半のメモリを使っているような512MB環境だと、止められるものがほとんどない。次の対処法とセットで考えたほうが早い。
対処法3: より大きいインスタンスに変える
根本的な解決はこれに尽きる。公式ドキュメントも「可能であれば、より大きいインスタンスを使ってください。Claude Codeには少なくとも4GBのRAMが必要です」とはっきり書いている。
ここで注意したいのは、「512MBはインストールできる最低ライン」であって「快適に使える基準」ではないという点だ。インストール自体はスワップでどうにか通せても、Claude Codeを実際に動かすと、サブエージェントの並列起動やファイル読み込みでさらにメモリを使う。512MB〜1GB帯のプランでインストールだけ無理やり通しても、実運用でまた同じ壁に当たる可能性が高い。
自分がHostinger VPSで検証したときも、4GBプラン(KVM 1)で「Node.jsのインストール時や大きなリポジトリの読み込みでメモリ不足に詰まることがある」と書いた。この記事で扱っているKilledはそれより手前の、もっと露骨な症状だと思ってもらえばいい。

目安をまとめるとこうなる。
| RAM | インストール | 実運用 |
|---|---|---|
| 〜512MB | スワップなしでは失敗しやすい | 非推奨 |
| 1GB〜2GB | スワップなしでも通ることが多い | 単発タスクなら動くが不安定 |
| 4GB〜 | 問題なし | 公式推奨ライン。快適に使える |
フリーランスで自分の開発サーバーとしてVPSを借りるなら、最初から4GB以上のプランを選んでおいたほうが、後から詰まって調べ直す時間を考えると結局安い。VPSではなく手元のマシンをAI開発拠点にする選択肢もある。
おまけ: Dockerでインストールがハングする別問題
VPS文脈でもう1つ、地味に踏みやすい問題がある。Killedで即終了するのとは違って、こちらはハングして何も進まなくなる症状だ。
Dockerコンテナ内でClaude Codeをインストールするとき、rootユーザーで/(ルートディレクトリ)にいる状態でインストーラーを実行すると、処理が固まることがある。原因は、インストーラーがファイルシステム全体をスキャンしてしまい、それが過剰なメモリ使用とハングを引き起こすためだ。
対処法はシンプルで、インストール前に作業ディレクトリを明示的に指定しておくこと。
WORKDIR /tmp
RUN curl -fsSL https://claude.ai/install.sh | bash
WORKDIRを設定しておけば、スキャン範囲がその小さなディレクトリに限定されてハングを避けられる。Docker Desktopを使っている場合は、あわせてメモリ制限を上げておくと安全だ。
docker build --memory=4g .
Dockerのメモリ周りで別の問題(Docker Desktopがホスト側のメモリを食いすぎる件)に心当たりがあるなら、こちらも合わせて見ておくとまとめて解決できる。
FAQ
スワップを追加したのにKilledが直らない
スワップの容量が足りていない可能性がある。free -mでスワップの有効化を確認し、2GBで足りなければ4GBに増やして試してほしい。それでも直らない場合は、OS側の別のプロセス(メモリリークしているデーモンなど)が常時メモリを圧迫していないかtopやhtopで確認したほうが早い。
インストールは通ったのに、Claude Code起動後に固まる
インストールとランタイムは別の問題だ。インストール時のKilledは解決していても、512MB〜1GB程度のRAMだと実行時にまた別の形でメモリ不足に当たることがある。長時間セッションでの不安定さについては別記事で実測ベースにまとめている。
無料枠のクラウドインスタンス(RAM 512MB〜1GB)でも使えるようにならないか
スワップを追加すれば「動く」状態には持っていけるが、快適さは犠牲になる。検証・学習目的で一時的に動かす分には現実的な選択肢だが、日常的な開発環境として使うなら、公式が推奨する4GB以上のプランに乗り換えたほうが結果的にストレスが少ない。
まとめ
Killedは原因のわからないエラーの中でもかなり不親切な部類だと思う。ログも出さずに終わるので、最初にこれを踏んだ人は「何が起きたのか」から調べ始めることになる。今回みたいに原因がOOM Killerだと分かっていれば、対処自体は「スワップを足すか、大きいインスタンスに変えるか」で終わる話でしかない。
VPS選びの段階で「Claude Codeを動かすなら最低4GB」を基準にしておけば、そもそもこの記事を読む必要すらなくなる。それが一番の対処法かもしれない。