「sudo apt-get update」が動作しない場合の対処方法

2024-11-12 · 更新日 2026-07-06

クイック修正:「sudo apt-get update」が動作しない場合

2026年時点で、Ubuntu(24.04 LTS「Noble Numbat」、22.04 LTS「Jammy Jellyfish」)やDebianでsudo apt-get updateが失敗する場合、最もよくある対処法を、試すべき順に紹介します。

  1. インターネットに接続でき、DNSが正常に動作しているか確認する。 ping -c 3 archive.ubuntu.comを実行します。ホスト名を解決できない場合、問題はAPTではなくネットワークやDNSにあります。まずそちらを解決してください。

  2. /etc/apt/sources.listに誤った、あるいは無効なリポジトリURLがないか確認する。 sudo nano /etc/apt/sources.listで開き(24.04では/etc/apt/sources.list.d/ubuntu.sourcesも確認してください)、タイプミスのあるもの、到達できないもの、サポートが終了したエントリをコメントアウトします。

  3. 破損したパッケージリストのキャッシュを再構築する。 これにより、古くなったり途中までしかダウンロードされていないインデックスファイルが削除され、あらためて取得し直されます:

    sudo rm -rf /var/lib/apt/lists/*
    sudo apt update
    
  4. 期限切れ、または欠落しているリポジトリ(GPG)キーを修正する。 NO_PUBKEYや「the following signatures were invalid: EXPSIG」と表示された場合は、不足しているキーをインポートします。現在の方法では、gpgとキーリングファイルを使います:

    curl -fsSL https://<repo-domain>/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/<repo>.gpg
    

    URLは、お使いのリポジトリのドキュメントに記載されているものに置き換えてください。(古いapt-keyコマンドはUbuntu 22.04以降では非推奨となり、それより新しいリリースでは削除されています。)

  5. ディスクの空き容量を確保する。 「No space left on device」で更新が失敗する場合は、df -hを実行し、sudo apt cleanでキャッシュをクリアします。

これらのいずれでも解決しない場合は、以下の詳しい診断を順に進めてください。このガイドのこの先では、各原因を掘り下げて説明するとともに、予防策と充実したFAQも取り上げます。

はじめに

Linux、特にUbuntuやDebian系のディストリビューションにおいて、sudo apt-get updateコマンドはシステムメンテナンスの基本となるツールです。このコマンドはパッケージリストを最新の状態に更新し、インストール可能なソフトウェアとそのバージョンについて、最新の情報をシステムに反映させます。しかし、時折この重要なコマンドが正常に動作しないという問題に遭遇することがあります。

この記事では、sudo apt-get updateコマンドの問題を診断し、解決するための手順を解説します。ここで紹介する手順は、2026年時点の現行Ubuntu LTSリリース(24.04 LTS「Noble Numbat」および22.04 LTS「Jammy Jellyfish」)、さらにDebian 12「Bookworm」をはじめとするDebian系ディストリビューションに適用できます。Linuxを使い始めたばかりの方でも、経験豊富なユーザーでも、この問題のトラブルシューティング方法を知っておくことは、システムを健全かつ最新の状態に保つうえで欠かせません。

なぜ重要なのか?

  1. システムのセキュリティ: 定期的なアップデートには、重要なセキュリティパッチが含まれていることがよくあります。
  2. ソフトウェアの互換性: パッケージリストを最新に保っておくと、新しいソフトウェアをインストールする際の競合を避けやすくなります。
  3. 最新機能へのアクセス: パッケージ情報が最新であれば、最新バージョンのソフトウェアを利用できます。
  4. システムの安定性: システムを適切にアップデートすることは、全体的な安定性とパフォーマンスの向上につながります。

以下のセクションでは、sudo apt-get updateが失敗するよくある原因を掘り下げ、システムを正常な状態に戻すための手順を一つずつ紹介していきます。

問題の説明: 症状と影響

sudo apt-get updateコマンドが正しく動作しない場合、さまざまな症状が現れることがあります。これらの症状を把握しておくことが、問題を診断し解決するための第一歩です。

よくある症状

  1. エラーメッセージ: 次のようなエラーメッセージが表示されることがよくあります:

    • "Failed to fetch"
    • "Could not resolve hostname"
    • "Connection failed"
    • "404 Not Found"
  2. 動作が遅い: 更新処理が極端に遅くなったり、途中で止まっているように見えたりすることがあります。

  3. 一部だけ更新される: 一部のリポジトリの更新は成功する一方、他のリポジトリでは失敗することがあります。

  4. GPGエラー: リポジトリのキーや署名に関する問題を示すメッセージが表示されることがあります。

  5. ネットワーク関連のエラー: タイムアウトが発生したり、サーバーに接続できなかったりすることがあります。

問題による影響

sudo apt-get updateが失敗すると、次のようなさまざまな悪影響が生じるおそれがあります:

  1. 新しいソフトウェアをインストールできない: パッケージリストが更新されていないと、新しいプログラムやその最新バージョンをインストールできなくなることがあります。

  2. セキュリティ上の脆弱性: 重要なセキュリティアップデートが適用されないと、既知の脅威にシステムがさらされる可能性があります。

  3. 依存関係の問題: パッケージ情報が古いと、ソフトウェアのインストールやアップグレードの際に競合が起きることがあります。

  4. システムの不安定化: 場合によっては、一部だけ更新された状態やパッケージバージョンの不整合が、システムの不安定化を招くことがあります。

  5. ストレスと時間の浪費: この問題のトラブルシューティングは、特に経験の浅いユーザーにとって、時間がかかりストレスの原因になりがちです。

これらの症状と影響を理解しておくと、問題を速やかかつ効果的に解決することの大切さがよくわかります。次のセクションでは、こうした問題の背後にあるよくある原因を見ていきます。

一般的な原因の分析

sudo apt-get updateが失敗する根本原因を理解しておくことは、効果的なトラブルシューティングに欠かせません。このコマンドが動作しない、最もよくある原因を以下に示します:

  1. インターネット接続の問題

    • インターネット接続が不安定、または品質が悪い
    • DNSの名前解決の問題
    • ファイアウォールやプロキシの設定がアクセスをブロックしている
  2. リポジトリサーバーの問題

    • サーバーの一時的な停止
    • アクセス集中時のサーバー過負荷
    • ミラーサーバーの同期ずれやオフライン状態
  3. 破損または古いソースリスト

    • sources.listファイル内のリポジトリURLの誤り
    • サポートされていない古いリポジトリ
    • 重複エントリによる競合
  4. GPGキーの問題

    • リポジトリのGPGキーが不足または期限切れ
    • リポジトリ署名の変更
  5. システム時刻の不一致

    • 不正確なシステム時刻によるSSL証明書検証エラー
  6. ディスク容量の問題

    • /var/lib/apt/lists/ディレクトリの容量不足
    • ルートパーティションの容量不足
  7. ソフトウェアの競合

    • 他のソフトウェアが更新プロセスを妨げている
    • 中断されたアップグレードや不完全な更新
  8. 古いパッケージマネージャ

    • バグが含まれている古いバージョンのaptまたはapt-getを使用している
  9. ネットワークの制限

    • 特定のサーバーへのアクセスが制限されている企業ネットワークや公共Wi-Fi
  10. ローカライズの問題

    • 言語設定がリポジトリ情報の取得に支障をきたしている

これらの原因のうち、自分の状況に当てはまるものを特定できれば、適切な解決策をより効果的に適用できます。次のセクションでは、これらの問題に一つずつ対処するための手順を詳しく説明します。

解決手順

それでは、「sudo apt-get update」の問題を解決するための手順を、順を追って見ていきましょう。

1. インターネット接続を確認する

まず、インターネット接続が安定していて、正常に動作していることを確認します。

  • ウェブブラウザを開き、いくつかのサイトにアクセスしてみましょう。
  • サイトが表示されない場合は、先に進む前にネットワーク接続のトラブルシューティングを行ってください。

2. sources.listファイルを確認する

sources.listファイルにはリポジトリの情報が含まれています。内容を確認し、必要であれば修正しましょう。

a. ファイルを開きます:

sudo nano /etc/apt/sources.list

b. URLのタイプミスなど、明らかな誤りがないか確認します。

c. 不要になったリポジトリは削除するか、コメントアウトします。

d. 変更を保存して終了します(nanoではCtrl+X、Y、Enterの順に押します)。

3. ダウンロードサーバーを変更する

場合によっては、別のミラーサーバーに切り替えると問題が解決することがあります。

a. 「ソフトウェアとアップデート」(またはお使いのディストリビューションで相当するアプリ)を開きます。

b. 「Ubuntu Software」タブで「Download from」をクリックし、「Other」を選択します。

c. 「Select Best Server」を選ぶか、手動で別のミラーを選択します。

d. プロンプトが表示されたら、閉じて再読み込みします。

4. APTキャッシュをクリアする

APTキャッシュをクリアすると、多くの問題が解決することがあります:

sudo rm -rf /var/lib/apt/lists/*
sudo apt clean

5. 競合しているプロセスを確認する

他のプロセスがAPTを使用していないことを確認します。

a. dpkgがロックされていないか確認します:

sudo lsof /var/lib/dpkg/lock-frontend

b. プロセスが見つかった場合は、完了を待つか、慎重に終了させます。

6. リポジトリのGPGキーを修正する

更新がNO_PUBKEYエラーや、署名の期限切れに関するメッセージ(EXPKEYSIG / EXPSIG)で失敗する場合は、リポジトリのキーをインポートするか更新する必要があります。

現行のUbuntu(22.04 LTSおよび24.04 LTS)とDebian 12では、apt-keyツールは非推奨です(それより新しいリリースでは削除されています)。推奨されるのは、リポジトリのキーを/usr/share/keyrings/にダウンロードする方法です:

curl -fsSL https://<repo-domain>/key.gpg | sudo gpg --dearmor -o /usr/share/keyrings/<repo>.gpg

<repo-domain><repo>は、お使いのリポジトリの公式ドキュメントに記載された値に置き換えてください。そのうえで、/etc/apt/sources.list.d/内の対応する行が、signed-by=/usr/share/keyrings/<repo>.gpgでそのキーリングを参照しているか確認します。

apt-keyがまだ利用できる古いシステムでは、次のコマンドでキーを更新できます:

sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com

7. システム時刻を確認する

システムの時刻が正しいか確認します:

date

時刻がずれている場合は、次のコマンドで修正します:

sudo timedatectl set-ntp true

8. ディスク容量を確認する

十分な空き容量があるか確認します:

df -h

必要であれば、不要なファイルや古いカーネルを削除して空き容量を増やしましょう。

9. IPv6を無効化する(必要な場合)

IPv6が問題の原因になっていると思われる場合は、次のようにします。

a. sysctl.confファイルを編集します:

sudo nano /etc/sysctl.conf

b. 次の行を追加します:

net.ipv6.conf.all.disable_ipv6 = 1
net.ipv6.conf.default.disable_ipv6 = 1
net.ipv6.conf.lo.disable_ipv6 = 1

c. 保存して終了し、変更を適用します:

sudo sysctl -p

10. 最後にもう一度更新を試す

ここまでの手順を試したら、もう一度更新コマンドを実行してみましょう:

sudo apt-get update

それでも問題が解決しない場合は、Linuxのフォーラムで助けを求めたり、お使いのディストリビューションのサポート窓口に問い合わせたりすることを検討してください。

予防策

「sudo apt-get update」の問題を解決する方法を知っておくことは大切ですが、そもそも問題が起きないように予防しておくのはさらに効果的です。ここでは、実践できる予防策をいくつか紹介します。

1. 定期的にシステムをアップデートする

  • システムを最新の状態に保つため、定期的なアップデートをスケジュールしましょう。
  • 次のコマンドを定期的に実行します:
sudo apt-get update
sudo apt-get upgrade

2. ソースを整理された状態に保つ

  • /etc/apt/sources.listファイルと、/etc/apt/sources.list.d/ディレクトリ内のファイルを定期的に見直します。
  • 使わなくなったリポジトリは削除するか、コメントアウトします。
  • 新しいリポジトリを追加する際は慎重に行いましょう。

3. ソースリストをバックアップする

  • 正常に動作しているsources.listファイルのバックアップを作成しておきます:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.backup
  • こうしておけば、必要なときに動作する設定をすぐに復元できます。

4. 公式リポジトリを使う

  • 可能な限り、公式リポジトリを使いましょう。
  • PPA(Personal Package Archives)やサードパーティのリポジトリを利用する際は注意しましょう。

5. GPGキーを最新に保つ

  • 署名チェックが失敗しないよう、リポジトリのキーを最新の状態に保ちます。
  • 最近のUbuntu(22.04 / 24.04)とDebian 12では、非推奨となったapt-keyを使う代わりに、各リポジトリのキーを/usr/share/keyrings/に保存し、リポジトリのソースエントリでsigned-by=を使って参照します。
  • apt-keyがまだ含まれている古いシステムでは、次のコマンドでキーを更新できます:
sudo apt-key adv --refresh-keys --keyserver keyserver.ubuntu.com

6. ディスク容量を監視する

  • 空きディスク容量を定期的に確認します:
df -h
  • 可能であれば、ディスク容量が少なくなったときに通知するアラートを設定しておきましょう。

7. 安定したインターネット接続を維持する

  • アップデート時には、安定したインターネット接続を確保しましょう。
  • 重要なシステムアップデートの際は、有線接続を利用するのも一つの方法です。

8. アップデートマネージャーを使う

  • デスクトップ環境では、標準搭載のアップデートマネージャーを使うと、より扱いやすくなります。

9. アップデートログを確認する

  • アップデート中に表示される警告やエラーには注意を払いましょう。
  • 小さな問題のうちに対処しておくことで、大きな問題に発展するのを防げます。

10. システム時刻を同期させる

  • システムクロックが常に同期されているか確認します:
sudo timedatectl set-ntp true

How to fix sudo apt-get update not working

結論

Linuxシステムを健全で最新の状態に保つことは、セキュリティ、安定性、そして最適なパフォーマンスのために欠かせません。sudo apt-get updateコマンドはそのプロセスで重要な役割を果たしており、このコマンドが失敗したときにトラブルシューティングできることは、すべてのLinuxユーザーにとって必須のスキルです。

ここで紹介した解決策は多くのよくある問題に対応していますが、Linuxシステムは複雑で、特有の状況が生じることもあります。これらの手順を試しても問題が解決しない場合は、フォーラムやメーリングリスト、お使いのディストリビューションの公式サポート窓口など、Linuxコミュニティに遠慮なく助けを求めてください。

システムメンテナンスを積極的に行い、よくある問題に対処する知識を身につけておけば、Linuxシステムを信頼性が高く効率的なツールとして使い続けられます。

最後に、システムに大きな変更を加える前には、必ず重要なデータをバックアップすることを忘れないでください。適切に手入れと注意を払えば、Linuxでの作業はスムーズで安全、そして快適なものになります。

よくある質問 (FAQ)

Q1: sudo apt-get updateはどれくらいの頻度で実行すべきですか?

A: 新しいソフトウェアをインストールする前や、少なくとも週に1回は実行することをおすすめします。高いセキュリティが求められるサーバーやシステムでは、毎日実行するのが望ましいでしょう。

Q2: apt-get updateapt-get upgradeの違いは何ですか?

A: apt-get updateは、利用可能なパッケージとそのバージョンの一覧を更新するだけで、パッケージのインストールやアップグレードは行いません。一方apt-get upgradeは、実際にインストール済みパッケージを新しいバージョンにアップグレードします。

Q3: 実行中のapt-get updateを中断しても安全ですか?

A: apt-get updateを中断すること自体はおおむね安全ですが、おすすめはしません。中断すると、パッケージリストが中途半端な状態のまま残ることがあります。もし中断してしまった場合は、コマンドをもう一度実行して最後まで完了させれば大丈夫です。

Q4: なぜapt-get updateにはsudo権限が必要なのですか?

A: パッケージリストの更新では、セキュリティのために保護されているシステムディレクトリへの書き込みが発生するため、sudo権限が必要です。これらの重要なシステムファイルは、管理者だけが変更できるようになっています。

Q5: apt-get updateでシステムが不安定になることはありますか?

A: apt-get update自体はパッケージ情報を更新するだけなので、不安定になることはありません。ただし、その後にパッケージのアップグレードまで進めた場合は、新しいバージョンの非互換やバグによって問題が生じるわずかなリスクがあります。

Q6: apt-get updateに時間がかかるのは普通ですか?

A: かかる時間は、インターネットの速度やリポジトリの数によって変わります。数分かかるのは普通ですが、あまりにも時間がかかる場合は、インターネット接続を確認するか、別のミラーサーバーを試してみてください。

Q7: apt-get updateの代わりにapt updateを使えますか?

A: はい、apt updateは、apt-get updateと同じことを行う、より新しく使いやすいコマンドです。対話的な利用でより直感的に使えるよう設計されたaptコマンド群の一部です。