Claude Media
Claude Code apt installでのLinuxパッケージ導入と更新

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鍵で署名されており、それぞれstablelatestの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.asc

fingerprintが一致したら、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-code

latestチャンネルに切り替えたい場合は、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-code

latestチャンネルに切り替える場合はbaseurlhttps://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/repositories

Alpineは素の状態でbashcurlが入っておらず、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.asc
sudo dnf remove claude-code
sudo rm /etc/yum.repos.d/claude-code.repo
apk 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が提供するのはstablelatestの2チャンネルだけで、任意の過去バージョンを指定してインストールする機能はありません。ネイティブインストーラーにはcurl -fsSL https://claude.ai/install.sh | bash -s 2.1.89のように、バージョン番号を直接指定して導入する経路があります。検証環境で特定バージョンに固定したい場合は、パッケージマネージャー経由ではなくこちらのネイティブインストーラーを使う方が確実です。バージョン指定インストールの詳細はClaude Code install完全ガイドにまとめています。

インストール後に確認しておくこと

どの経路で入れた場合も、バージョン表示とヘルスチェックの2つで動作を確認しておくと安心です。

claude --version
claude doctor

claude 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 upgradednf upgradeapk upgradeをシステム側のフローで実行する必要があります。

latestチャンネルからstableに戻せますか

戻せます。リポジトリの登録行をstable用のURLに書き換えてから再インストールすれば、パッケージマネージャーが提供しているstable版に切り替わります。

署名鍵のfingerprintはどこで確認できますか

31DD DE24 DDFA B679 F42D 7BD2 BAA9 29FF 1A7E CACEがAnthropicの署名鍵の正しいfingerprintです。配布バイナリそのものの検証まで踏み込みたい場合は、前段で触れたGPG署名検証の手順を参照してください。

Alpineでapk installする前に何か準備が必要ですか

必要です。Alpineは素の状態でbashcurlを含まないため、依存パッケージの導入順を誤るとコマンド自体が失敗します。手順は前段で紹介したAlpine向けの記事にまとめています。

WSL2でもこの手順は使えますか

使えます。WSL2上のUbuntu・Debianは通常のLinux環境と同じくaptリポジトリを登録できます。WSL2固有のパスやNode.jsまわりの注意点はClaude Code WSL2セットアップで扱っています。

まとめ

apt・dnf・apkはいずれも同じGPG鍵で署名されたリポジトリを提供し、stablelatestの2チャンネルから選べます。導入時はfingerprintの照合を省略せず、更新はシステム側のパッケージ管理コマンドで手動実行する前提で運用してください。Ubuntu固有のサンドボックス設定はClaude Code Ubuntuインストールを併読すると導入計画を立てやすくなります。

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