Claude Code apt installでのLinuxパッケージ導入と更新
Claude Codeをapt・dnf・apkの署名付きリポジトリから導入し、stable/latestチャンネルの切り替えとアップグレード運用までを一次ソースの手順でまとめます。
apt/dnf/apkでのインストールが向いているケース
Claude Codeはcurlのネイティブインストーラーに加えて、署名済みのapt・dnf・apkリポジトリからも導入できます。サーバー群を構成管理ツール(Ansible・Puppet等)でまとめて管理している場合や、社内で許可されたパッケージ経路以外を使えない環境では、この経路が第一候補になります。
ネイティブインストーラーとの最大の違いは自動更新です。curlでインストールした場合はClaude Code自身がバックグラウンドで更新を確認しますが、apt・dnf・apk経由では更新はシステムのパッケージ管理フローに委ねられます。この違いを知らずに「通知は出るのに新しいバージョンにならない」と戸惑うケースがあるため、本記事は3つのパッケージマネージャーへの導入と、導入後の更新運用に絞って解説します。
3つのリポジトリに共通する設計
apt・dnf・apkの3リポジトリはいずれも同じAnthropicのGPG鍵で署名されており、それぞれstableとlatestの2チャンネルを提供します。stableは深刻な不具合を含むリリースを飛ばした、おおむね1週間前後遅れのバージョンです。latestはリリースのたびに即座に反映されます。
鍵を信頼する前に、必ずfingerprintを目視で確認してください。3つのリポジトリすべてで同じ鍵が使われており、正しいfingerprintは次の値です。
31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACEこの鍵とmanifest.jsonの署名検証を組み合わせた、配布バイナリそのものの整合性チェックはClaude CodeバイナリのGPG署名検証で扱っています。ここでは3つのパッケージマネージャーそれぞれの導入手順に進みます。
apt(Ubuntu・Debian)でインストールする
Debian・Ubuntuでは、gpgコマンドで鍵の中身を確認してからリポジトリを登録します。新しめのDebian・Ubuntuにはgpgが入っていないことがあるため、command not foundが出た場合は先に導入します。
sudo apt install curl gnupg署名鍵をダウンロードし、fingerprintを確認します。
sudo install -d -m 0755 /etc/apt/keyrings
sudo curl -fsSL https://downloads.claude.ai/keys/claude-code.asc \
-o /etc/apt/keyrings/claude-code.asc
gpg --show-keys /etc/apt/keyrings/claude-code.ascfingerprintが一致したら、stableチャンネルのリポジトリを登録してインストールします。
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/stable stable main" \
| sudo tee /etc/apt/sources.list.d/claude-code.list
sudo apt update
sudo apt install claude-codelatestチャンネルに切り替えたい場合は、URLパスとsuite名の両方を変更したdeb行に書き換えます。
echo "deb [signed-by=/etc/apt/keyrings/claude-code.asc] https://downloads.claude.ai/claude-code/apt/latest latest main" \
| sudo tee /etc/apt/sources.list.d/claude-code.list更新はsudo apt update && sudo apt upgrade claude-codeで行います。
dnf(Fedora・RHEL)でインストールする
FedoraとRHELでは、リポジトリ定義ファイルを1つ作るだけで済みます。
sudo tee /etc/yum.repos.d/claude-code.repo <<'EOF'
[claude-code]
name=Claude Code
baseurl=https://downloads.claude.ai/claude-code/rpm/stable
enabled=1
gpgcheck=1
gpgkey=https://downloads.claude.ai/keys/claude-code.asc
EOF
sudo dnf install claude-codelatestチャンネルに切り替える場合はbaseurlをhttps://downloads.claude.ai/claude-code/rpm/latestに書き換えます。dnfは初回インストール時に鍵をダウンロードしてfingerprintの確認プロンプトを出すので、31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACEと一致するかその場で照合してください。更新はsudo dnf upgrade claude-codeです。
apk(Alpine Linux)でインストールする
Alpineでは公開鍵をwgetで取得し、リポジトリのURLを直接/etc/apk/repositoriesに追記します。
wget -O /etc/apk/keys/claude-code.rsa.pub \
https://downloads.claude.ai/keys/claude-code.rsa.pub
echo "https://downloads.claude.ai/claude-code/apk/stable" >> /etc/apk/repositories
apk add claude-code鍵のsha256チェックサムはsha256sum /etc/apk/keys/claude-code.rsa.pubで確認し、395759c1f7449ef4cdef305a42e820f3c766d6090d142634ebdb049f113168b6と一致するか見ます。latestチャンネルへの切り替えは、stableの行を削除してlatestの行を追加する形です。
sed -i '\|downloads.claude.ai/claude-code/apk/stable|d' /etc/apk/repositories
echo "https://downloads.claude.ai/claude-code/apk/latest" >> /etc/apk/repositoriesAlpineは素の状態でbashやcurlが入っておらず、apk経由でもclaude本体の実行にmuslベース特有の依存が絡みます。この前提条件はClaude Code Alpine Linuxセットアップで個別にまとめています。更新はapk update && apk upgrade claude-codeです。
stable/latestチャンネルの使い分け
| チャンネル | 反映タイミング | 向くケース |
|---|---|---|
| stable | 反映タイミング深刻な不具合を含むリリースを飛ばした、約1週間遅れの版 | 向くケース本番サーバー群・CI基盤 |
| latest | 反映タイミングリリースのたびに即時反映 | 向くケース開発機・新機能を早く試したい個人 |
どちらのチャンネルでも、パッケージマネージャー自体の自動更新設定(unattended-upgrades等)に乗せない限りClaude Code側からは更新されません。
パッケージマネージャー経由の更新はなぜ手動なのか
Homebrew・WinGetのインストールには、CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATEを設定するとClaude Code自身がバックグラウンドでアップグレードコマンドを代行実行する仕組みがあります。apt・dnf・apkにはこの仕組みがありません。これらのアップグレードコマンドは昇格した権限を必要とするため、Claude Codeのプロセスから直接実行させる設計になっていないからです。
パッケージマネージャーでアンインストールする
パッケージ経由でインストールした場合は、パッケージ管理コマンドでリポジトリ設定ごと削除します。
sudo apt remove claude-code
sudo rm /etc/apt/sources.list.d/claude-code.list /etc/apt/keyrings/claude-code.ascsudo dnf remove claude-code
sudo rm /etc/yum.repos.d/claude-code.repoapk del claude-code
sed -i '\|downloads.claude.ai/claude-code/apk|d' /etc/apk/repositories
rm /etc/apk/keys/claude-code.rsa.pub特定バージョンを固定したい場合はどうするか
apt・dnf・apkが提供するのはstableとlatestの2チャンネルだけで、任意の過去バージョンを指定してインストールする機能はありません。ネイティブインストーラーにはcurl -fsSL https://claude.ai/install.sh | bash -s 2.1.89のように、バージョン番号を直接指定して導入する経路があります。検証環境で特定バージョンに固定したい場合は、パッケージマネージャー経由ではなくこちらのネイティブインストーラーを使う方が確実です。バージョン指定インストールの詳細はClaude Code install完全ガイドにまとめています。
インストール後に確認しておくこと
どの経路で入れた場合も、バージョン表示とヘルスチェックの2つで動作を確認しておくと安心です。
claude --version
claude doctorclaude doctorはセッションを開始せずに、インストールの健全性・設定ファイルの検証エラー・修正案付きの警告を読み取り専用で表示します。パッケージマネージャー経由のインストールでリポジトリ登録に不備があった場合も、ここで異常が拾えることがあります。
よくあるつまずき
NO_PUBKEY BAA929FF1A7ECACEでapt updateが失敗する
鍵のダウンロード自体が失敗しているサインです。/etc/apt/keyrings/claude-code.ascが存在するか、gpg --show-keysでfingerprintが表示されるかを確認し、ネットワークがdownloads.claude.aiに到達できることを見てから再ダウンロードします。
gpgコマンドが見つからない
最小構成のDebian・Ubuntuイメージにはgpgが含まれていません。sudo apt install curl gnupgで導入してから、鍵のダウンロードとインストール手順をやり直します。
apt install claude-codeがそもそも通らない
リポジトリの登録行にsigned-byのパス指定が抜けている、あるいはsources.list.dのファイル名が既存の設定と衝突しているケースが多く見られます。cat /etc/apt/sources.list.d/claude-code.listで登録内容を確認し、鍵ファイルのパスが実在するかを見直してください。
よくある質問
apt/dnf/apkでインストールすると自動更新されますか
自動では更新されません。更新の検知と通知はClaude Code側で行われますが、実際のアップグレードはapt upgrade・dnf upgrade・apk upgradeをシステム側のフローで実行する必要があります。
latestチャンネルからstableに戻せますか
戻せます。リポジトリの登録行をstable用のURLに書き換えてから再インストールすれば、パッケージマネージャーが提供しているstable版に切り替わります。
署名鍵のfingerprintはどこで確認できますか
31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACEがAnthropicの署名鍵の正しいfingerprintです。配布バイナリそのものの検証まで踏み込みたい場合は、前段で触れたGPG署名検証の手順を参照してください。
Alpineでapk installする前に何か準備が必要ですか
必要です。Alpineは素の状態でbashやcurlを含まないため、依存パッケージの導入順を誤るとコマンド自体が失敗します。手順は前段で紹介したAlpine向けの記事にまとめています。
WSL2でもこの手順は使えますか
使えます。WSL2上のUbuntu・Debianは通常のLinux環境と同じくaptリポジトリを登録できます。WSL2固有のパスやNode.jsまわりの注意点はClaude Code WSL2セットアップで扱っています。
まとめ
apt・dnf・apkはいずれも同じGPG鍵で署名されたリポジトリを提供し、stable・latestの2チャンネルから選べます。導入時はfingerprintの照合を省略せず、更新はシステム側のパッケージ管理コマンドで手動実行する前提で運用してください。Ubuntu固有のサンドボックス設定はClaude Code Ubuntuインストールを併読すると導入計画を立てやすくなります。