UbuntuでClaude Codeのインストールに失敗する3パターン——権限・証明書・WSLのnpm競合を公式ドキュメントで潰す

UbuntuでClaude Codeのインストールに失敗する3パターン——権限・証明書・WSLのnpm競合を公式ドキュメントで潰す

Ubuntu/DebianでClaude Codeをインストールする際の権限エラー、TLS/SSL証明書エラー、WSL環境でのnpmインストール競合を公式トラブルシューティングドキュメントベースで解説。Ubuntu Desktop・Server・WSLそれぞれの落とし穴を整理した。

エンジニアのゆとです。

Ubuntu(Desktop・Server・WSL上のUbuntuを含む)にClaude Codeを入れようとして、macOSやWindowsの手順通りにやったのになぜかコケる、という相談をちらほら見かける。原因は大きく3パターンに絞れて、しかもどれも公式ドキュメントに載っている想定内のトラブルだ。この記事ではUbuntu/Debian系ディストリビューションで実際に踏みやすい順に整理した。

低メモリなVPSで出るKilledエラーについては別記事で扱っているので、ここでは触れない。それ以外の「入らない・動かない」系をまとめてある。

Claude Codeのインストールが「Killed」で落ちる原因、公式ドキュメントで潰した——格安VPSのメモリ不足対処法
Claude Codeのインストールが「Killed」で落ちる原因、公式ドキュメントで潰した——格安VPSのメモリ不足対処法Claude CodeをVPSにインストールすると出る「Killed」エラーの正体を解説。Linux OOM Killerの仕組み、スワップ追加の手順、Dockerでインストールがハングする別問題まで、公式ドキュメントベースで整理した。読む →

パターン1: ディレクトリの権限エラー

インストーラーは~/.local/bin/~/.claude/への書き込み権限を必要とする。過去に別ユーザーやrootでこれらのディレクトリを作っていたり、共有サーバーで所有者がずれていたりすると、権限エラーでインストールが止まる。

書き込み可能かどうかは以下で確認できる。

test -w ~/.local/bin && echo "writable" || echo "not writable"
test -w ~/.claude && echo "writable" || echo "not writable"

not writableと出た場合は、ディレクトリを作成し直して所有者を自分のユーザーに変更する。

sudo mkdir -p ~/.local/bin
sudo chown -R $(whoami) ~/.local

以前npm経由でインストールしていて、npm特有の権限エラー(グローバルインストール先の/usr/lib/node_modulesなどに対するEACCES)を踏んでいる場合は、そもそもネイティブインストーラーに乗り換えるのが早い。

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

npmのグローバルインストール権限問題は、sudo npm install -gで無理やり突破しようとして余計にディレクトリの所有者を壊す、というのがUbuntu環境での典型的な事故パターンだ。ネイティブインストーラーはユーザーのホームディレクトリ配下で完結するため、この手の権限沼を避けやすい。

パターン2: TLS/SSL証明書エラー

curl: (35) TLS connect errorunable to get local issuer certificateといったエラーが出る場合、TLSハンドシェイクが失敗している。Ubuntu/Debianでまず疑うべきは、システムのCA証明書が古いか壊れているケースだ。

sudo apt-get update && sudo apt-get install ca-certificates

これで直らない場合、企業ネットワークのプロキシがTLS通信を検査(TLSインスペクション)していて、証明書のチェーンを書き換えている可能性がある。この場合は、インストール時に社内CAの証明書ファイルを明示的に指定する。

curl --cacert /path/to/corporate-ca.pem -fsSL https://claude.ai/install.sh | bash

インストール後、Claude Code自体のAPI通信でも同じ証明書を信頼させるには、NODE_EXTRA_CA_CERTS環境変数を設定しておく。

export NODE_EXTRA_CA_CERTS=/path/to/corporate-ca.pem

証明書ファイルの入手方法が分からない場合は、社内IT部門に問い合わせるのが確実だ。自宅のネットワークなど、プロキシを挟んでいない環境に一時的につないで動作確認すれば、原因がプロキシ側にあるかどうかの切り分けにもなる。

パターン3: WSL上のUbuntuでnpmインストールが競合する

WSL(Windows Subsystem for Linux)上でUbuntuを使っている場合、Windows側とLinux側でNode.js環境が両方存在してしまい、意図しない方を参照して失敗するパターンが多い。これはネイティブインストーラーではなく、npm install -gでインストールした場合に起きやすい。

OS判定がずれる

npmのインストール時にプラットフォーム判定がおかしくなる場合、WSLがWindows側のnpmを拾ってしまっている可能性がある。まずnpm configでOSを明示し、--forceを付けて入れ直す。

npm config set os linux
npm install -g @anthropic-ai/claude-code --force

このときsudoは使わない。sudoを付けると別のユーザー権限でインストールされ、後述のPATH問題や別種の権限エラーの原因になる。

exec: node: not found

claudeを実行したときにこのエラーが出る場合、WSL環境がWindows側にインストールされたNode.jsを参照してしまっている。次のコマンドでどちらを見ているか確認できる。

which npm
which node

パスが/mnt/c/から始まっていればWindows側のバイナリを掴んでいる状態だ。Linux用のディストリビューションのパッケージマネージャ(apt)経由か、nvm経由でNode.jsをWSL内にインストールし直す必要がある。

nvmのバージョンが勝手に切り替わる

WSLとWindows側の両方にnvmを入れていると、WSLはデフォルトでWindowsのPATHをインポートするため、Windows側のnvmが優先されてバージョン切り替えが効かなくなることがある。多くの場合、原因はシェルでnvmがロードされていないことだ。~/.bashrc~/.zshrcに以下を追記する。

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion"

それでもWindows側のパスが優先される場合は、Linux側のNodeパスを明示的に先頭へ追加する。

export PATH="$HOME/.nvm/versions/node/$(node -v)/bin:$PATH"

なお、WSLのWindows PATHインポート自体を無効化する(appendWindowsPath = false)のはおすすめしない。WSLからWindowsの実行ファイルを呼べなくなる副作用があるため、Windows側の開発でNode.jsを使っているなら、そちらをアンインストールするのも避けたほうがいい。

Ubuntu/Debianでripgrepが正しく動いていない場合

インストール自体は成功しても、Searchツールや@fileメンションが正しく機能しない場合は、バンドルされているripgrepバイナリが動いていない可能性がある。システム側のripgrepを別途入れて切り替えることもできる。

sudo apt install ripgrep

インストール後、設定でバンドル版ではなくシステム版を使うよう指定する。

{
  "env": {
    "USE_BUILTIN_RIPGREP": "0"
  }
}

claude doctorを実行し、Searchの行がバンドル版(OK (bundled))ではなく、システム側のripgrepパスを指しているかで切り替えが反映されたか確認できる。

Ubuntu環境を選ぶ前に — VPSかWSLか

自分の開発環境をどこに置くか迷っている場合、格安VPSの低スペックプランはメモリ不足で詰まりやすく、WSLはWindows側とのファイルシステム・PATH競合という別種の面倒がある。VPSでの実運用を検討しているなら、事前にどのくらいのスペックが必要か確認しておいたほうがいい。

Hostinger VPS に Claude Code を入れて開発環境を1時間で作る——SSH設定からClaude実行まで
Hostinger VPS に Claude Code を入れて開発環境を1時間で作る——SSH設定からClaude実行までHostinger VPSにClaude Codeのリモート開発環境を構築する手順を解説。申込からSSH接続、Node.js/Claude Codeのインストール、tmuxでの常駐化、GitHubとの連携まで、フリーランスエンジニアの実運用ベースで紹介。読む →

WSL経由かWindowsネイティブ版か迷っている場合は、3つの実行方式を比較した記事も参考にしてほしい。

Claude Code Windows完全ガイド 2026 — WSL・Git Bash・PowerShell徹底比較
Claude Code Windows完全ガイド 2026 — WSL・Git Bash・PowerShell徹底比較Claude CodeをWindowsで使う3つの方法(WSL/Git Bash/PowerShell)を徹底解説。インストール手順・パフォーマンス比較・トラブルシュート・各環境の使い分けを2026年最新情報で網羅。読む →

FAQ

sudoを付ければ大抵の権限エラーは回避できるのでは

避けたほうがいい。sudo npm install -gはグローバルディレクトリの所有者をrootに書き換えてしまい、以降のnpm操作全般で権限エラーを誘発する原因になりやすい。ネイティブインストーラーはユーザー権限のまま完結するように設計されているので、権限エラーが出たらsudoを付ける前に、まずディレクトリの所有者を自分のユーザーに揃えることを検討してほしい。

Ubuntu ServerとUbuntu Desktopで手順は変わるか

インストールコマンド自体は同じだ。違うのは、Server版はGUIがなくSSH経由での操作が前提になる分、TLS証明書やプロキシまわりの企業ネットワーク特有の問題に当たりやすいという点くらいになる。

apt経由でClaude Codeを直接インストールできないか

現時点でのネイティブインストーラーはシェルスクリプト経由の配布が基本で、Ubuntu用のaptリポジトリは用意されていない。GUIから入れたい場合は、Claude Code Desktopアプリの方でLinux向けのapt手順が案内されている。

まとめ

Ubuntu特有のトラブルは、突き詰めると「権限」「証明書」「WSL特有のパス競合」の3つに収まることが多い。macOSやWindowsの手順をそのまま持ち込んで詰まった場合は、まずこの3つのどれに当てはまるかを確認すると解決が早い。

github.com
anthropics/claude-code Issues 同じ症状の報告を検索したり、再現しない不具合を報告するならここ。
← 記事一覧に戻る