はじめに (対象読者・この記事でわかること)
この記事は、Debian 10(Buster)をサーバーや開発環境で利用しているシステム管理者・エンジニア、または自宅のVPS等でbashシェルを使っている方を対象としています。
特に「sudo apt update」実行時に「E: リポジトリ情報の取得に失敗しました」や「Failed to fetch」系のエラーが出てしまい、アップデートが進まないという経験をしたことがある人に最適です。
この記事を読むことで以下のことができるようになります。
- エラーの根本原因(リポジトリ設定のミス、証明書の期限切れ、ネットワーク障害など)を特定する手順。
sources.listの正しい記述例と、不要なエントリの削除方法。- 失効した GPG 鍵や SSL 証明書の更新手順、プロキシや DNS 設定の見直し方。
- 実際に手を動かしてエラーを解消し、再度
sudo apt updateが正常に完了する状態に戻す方法。
本記事の背景は、Debian 10 は 2022 年に LTS サポートが終了したことに伴い、パッケージサーバー側で TLS 証明書やミラーのリプレースが進んでいる点です。その影響で古い環境での apt 更新が頻繁に失敗するケースが増えてきました。
前提知識
この記事を読み進める上で、以下の知識があるとスムーズです。
- 基本的な Linux コマンド操作(
cat,nano,systemctlなど)。 - Debian 系ディストリビューションにおけるパッケージ管理(
apt,dpkg)の概念。 - bash シェルでの権限昇格(
sudo)や環境変数の扱い。
エラーの概要と原因分析(背景)
Debian 10 のリリース当初は、公式ミラーサーバーが HTTP または古い TLS バージョンで提供されていましたが、2022 年以降はセキュリティ向上のために TLS 1.2 以上への強制や、ミラーのリダイレクトが増加しました。その結果、古い sources.list に記載されているミラー URL が利用できなくなるケースが散見されます。
典型的なエラーメッセージは以下のような形です。
Err:1 http://deb.debian.org/debian buster InRelease
Could not connect to deb.debian.org:80 (111: Connection refused)
E: The repository 'http://deb.debian.org/debian buster InRelease' is no longer signed.
また、GPG 鍵が期限切れになっていると次のような警告が出ます。
W: GPG error: http://deb.debian.org/debian buster InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 8B48AD6246925553
さらに、企業内部ネットワークでプロキシを経由している場合、apt がプロキシ設定を認識できずにタイムアウトすることもあります。
具体的な対処手順
以下では、上記エラーを段階的に解消するための手順を示します。各ステップは実環境に合わせて適宜スキップ可能です。
ステップ1 sources.list の見直しとミラー変更
- 現在のリストをバックアップします。
bash sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak nanoなどのエディタでファイルを開き、古い HTTP URL を HTTPS に置き換えます。
bash sudo nano /etc/apt/sources.list例(変更前)
deb http://deb.debian.org/debian buster main deb-src http://deb.debian.org/debian buster main例(変更後)
deb https://deb.debian.org/debian buster main deb-src https://deb.debian.org/debian buster main- ミラーが利用できない場合は、代替ミラー(例:
https://ftp.jp.debian.org/debian)に書き換えます。 - ファイル保存後、
sudo apt updateを再実行し、エラーメッセージが改善したか確認します。
ステップ2 GPG 鍵の更新
- 欠損している鍵 ID を確認します(エラーメッセージの
NO_PUBKEY部分)。 - 鍵を取得し、
aptの信頼ストアに追加します。
bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys <KEY_ID>例:
bash sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 8B48AD6246925553 - 2022 年以降は
apt-keyが非推奨になるため、代替として/etc/apt/trusted.gpg.d/に鍵ファイルを配置することも推奨されます。
bash curl -fsSL https://ftp-master.debian.org/keys/archive-key-10.asc | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/debian-10-archive.gpg - 再度
sudo apt updateを実行し、鍵エラーが解消されたか確認します。
ステップ3 TLS/SSL 証明書の更新
古い ca-certificates パッケージが原因で SSL ハンドシェイクに失敗することがあります。
- まず、ローカルの証明書ストアを最新にします(ネットワークが通る環境が必要)。
bash sudo apt-get install --reinstall ca-certificates - それでもエラーが続く場合は、手動で証明書を取得し、
/usr/local/share/ca-certificates/配下に配置して更新します。
bash sudo cp your-company-proxy-ca.crt /usr/local/share/ca-certificates/ sudo update-ca-certificates - 再度
sudo apt updateを試み、TLS 接続エラーが無くなったか確認します。
ステップ4 プロキシ設定の確認
社内ネットワークで HTTP/HTTPS プロキシを使用している場合、環境変数 http_proxy と https_proxy が正しく設定されているか確認します。
- 現在の設定を確認。
bash echo $http_proxy $https_proxy - 必要に応じて
/etc/apt/apt.conf.d/01proxyを作成し、プロキシ情報を書き込みます。
bash echo 'Acquire::http::Proxy "http://proxy.example.com:8080/";' | sudo tee /etc/apt/apt.conf.d/01proxy echo 'Acquire::https::Proxy "https://proxy.example.com:8080/";' | sudo tee -a /etc/apt/apt.conf.d/01proxy - 再度
sudo apt updateで接続が成功するかテストします。
ハマった点やエラー解決
-
「Could not resolve 'deb.debian.org'」
DNS が正しく設定されていないケース。/etc/resolv.confに有効な DNS サーバ(例: 8.8.8.8)を追加し、systemd-resolvedを再起動すると解決。 -
「Hash Sum mismatch」
ミラー側のキャッシュが破損している場合。sudo apt cleanでローカルキャッシュを削除し、再度apt updateを実行。 -
「Failed to fetch ... 404 Not Found」
busterのリポジトリは LTS が終了したため、一部ミラーでパッケージが削除されている。buster-updatesからbuster-backportsへ切り替えるか、stable(現在はbullseye)へアップグレードすることを検討。
解決策まとめ
sources.listの URL を HTTPS に統一し、ミラーが利用可能か確認。- 欠損鍵は
apt-keyまたはgpg --dearmorで追加し、trusted.gpg.dに配置。 ca-certificatesを再インストール、必要なら手動で CA を追加。- プロキシ環境では
apt.conf.dに正しい設定を書き込み、環境変数も併せて設定。 - DNS・キャッシュ・ミラーの状態を逐次確認し、問題が残れば公式ドキュメントやフォーラムで最新情報を取得。
まとめ
本記事では、Debian 10 の sudo apt update が失敗する主な原因と、その対処法を体系的に解説しました。
- 原因:古いミラー URL、期限切れ GPG 鍵、SSL 証明書の老朽化、プロキシ・DNS 設定ミス
- 対処:
sources.listの HTTPS への置換、鍵の再取得、証明書パッケージ再インストール、プロキシ設定ファイルの作成、DNS とキャッシュのクリア - 結果:
apt updateが正常に完了し、パッケージの取得・インストールが再び可能になる
これらの手順を踏むことで、システムの更新作業が滞ることなく継続でき、セキュリティパッチや機能追加を速やかに適用できます。次回は、Debian 10 から Debian 11(Bullseye)への安全なディストリビューションアップグレード手順について解説する予定です。
参考資料
- Debian 公式リポジトリガイド – Debian Wiki
- Debian Security Advisory – GPG 鍵の更新方法
- Ubuntu キーサーバー – keyserver.ubuntu.com の使用例
- APT プロキシ設定 – Debian Policy Manual
