apt update のエラーで困っていませんか?
- 更新が途中で止まってしまう
- エラーメッセージが読めない
- サーバーや作業を止められない
結論から言うと、apt update のエラーは原因を絞れば
すぐ直せることが多いです。
- ネットワークやDNSの問題を確認する
- ロックや破損したパッケージを直す
- リポジトリ設定や鍵の問題を修正する
この記事では、よくあるエラーの例と
その対処をわかりやすく解説します。
apt update とは何かをやさしく説明
apt update は、パソコンやサーバーの
ソフトの一覧を最新にするコマンドです。
具体的には、使っているOSのソフトを置いてある
「倉庫(リポジトリ)」を確認します。
このコマンドは安全でよく使いますが、
環境によってはエラーが出ます。
まず最初にやること(共通チェック)
エラーが出たら、まず基本を確認します。
順番に調べると早く直せます。
簡単な確認項目は次の通りです。
これで多くの問題が分かります。
- インターネットにつながっているか
- 他の apt コマンドが動いていないか
- ディスクの空きがあるか
よくあるエラーと直し方(ケース別)
1) ネットワークやDNSの問題
エラー例: "Temporary failure resolving 'archive.ubuntu.com'"
と表示されることがあります。
これは、名前をIPに変換する
DNSが動いていない場合によく出ます。
直し方の例は次の通りです。
簡単に試せて効果が高いです。
- インターネットに接続できるか確認する
- 別のサイトに ping を送る
- DNSサーバーを 8.8.8.8 にして試す
コマンド例:
ping -c 3 8.8.8.8
ping -c 3 archive.ubuntu.comDNSを一時的に変える例(編集後は元に戻す)
/etc/resolv.conf を編集して 8.8.8.8 を試します。
sudo nano /etc/resolv.conf
# 例: nameserver 8.8.8.82) ロックファイルや他の apt プロセスが原因
エラー例: "Could not get lock /var/lib/apt/lists/lock"
や"Unable to acquire the dpkg frontend lock"などです。
この場合、別の apt や dpkg が動いているか
途中で止まっていることが多いです。
直し方の手順(実務でよくあるケース)
リモートサーバーで自動更新が走っている時などに起きます。
- 動いているプロセスを確認する
- 安全ならプロセスを止める
- ロックファイルを削除して再試行する
コマンド例
ps aux | grep -E 'apt|dpkg'
sudo kill <pid> # 本当に止めていいか確認してから
sudo rm /var/lib/apt/lists/lock
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock*
sudo dpkg --configure -a
sudo apt update
</pid>注意: サーバー管理者以外は
勝手にプロセスを殺さないでください。
業務中の更新を止めると影響があります。
3) パッケージ情報の破損(Hash Sum mismatch 等)
エラー例: "Hash Sum mismatch" と表示されることがあります。
これはダウンロードしたファイルが壊れているか
キャッシュの問題です。
よくある実務ケースは、社内プロキシやミラーの同期が
うまくいっていない時です。
直し方
- キャッシュをきれいにする
- 再度
apt updateを実行する
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update4) GPG 鍵(NO_PUBKEY)エラー
エラー例: "NO_PUBKEY XXXXXXXXXXXXXXXX" と出ることがあります。
これはリポジトリの署名を確認する鍵が足りない状態です。
実務では外部のリポジトリを追加した時に出ます。
安全な鍵のみ追加してください。
直し方の例
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys XXXXXXXXXXXXXXXX
sudo apt update最近のUbuntuでは apt-key の使用が減っています。
リポジトリの説明に従って鍵を入れてください。
5) リポジトリの設定ミス(Release file が無い)
エラー例: "The repository does not have a Release file" と
出る場合は、使っているリポジトリが対応外か設定ミスです。
実務では、古いディストリビューションを使っている
サーバーで起きやすいです。
直し方
/etc/apt/sources.listを確認する/etc/apt/sources.list.d/以下のファイルも見る- 不要な外部リポジトリは一時的に無効化する
編集例
sudo nano /etc/apt/sources.list
# 行の先頭に # を付けると無効になります実務でよくあるシナリオと対処例
シナリオA: CI が失敗する
状況: 自動ビルドで apt update が失敗して
テストが止まることがあります。
原因: イメージのキャッシュや一時的なネット障害が多いです。
対処はリトライやキャッシュクリアです。
対応例
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo apt update || (sleep 5 && sudo apt update)シナリオB: 古いサーバーで apt update エラー
状況: 古いUbuntuやDebianを使っていると
リポジトリが移動している場合があります。
対処: 古いリリースはアーカイブに移動します。
sources.list を 'old-releases' に書き換える必要があります。
例(手順は公式手順を確認してください)
/etc/apt/sources.list のURLをアーカイブ先に変更します。
シナリオC: 社内プロキシ経由での失敗
状況: 社内ネットワークでプロキシ設定が必要です。
apt がプロキシを使えず失敗することがあります。
対処: 環境変数か /etc/apt/apt.conf にプロキシを設定します。
# 環境変数例
export http_proxy="http://proxy.example.com:8080"
export https_proxy="http://proxy.example.com:8080"
# apt.conf 例
Acquire::http::Proxy "http://proxy.example.com:8080";
安全に作業するための注意点
サーバーで作業する時は、まず現在の状況を記録しておきます。
ログや画面を残すと戻せます。
コマンドを実行する前に、
その影響を考えてから実行してください。
特に本番サーバーでは、夜間の保守時間に行うなど
事前に連絡を取りましょう。
よく使うコマンドまとめ
ここに日常的に使うコマンドをまとめます。
覚えておくと便利です。
sudo apt update
sudo apt upgrade
sudo apt clean
sudo rm -rf /var/lib/apt/lists/*
sudo dpkg --configure -a
ps aux | grep -E 'apt|dpkg'
トラブルが解決しない時の次の一手
自分で直せない場合は、ログを保存して
管理者や同僚に見せると早いです。
ログの例: /var/log/apt/term.log や
実行時のターミナル出力を貼ると原因が分かりやすいです。
まとめ
apt update のエラーは原因を順番に調べれば
初心者でも対処できます。
ポイントは次の3つです。
まずネットワーク、次にロックや破損、最後にリポジトリ設定です。
具体的には、ping や DNS の確認、
ロックファイルの確認、キャッシュクリア、鍵の追加を順に試します。
本記事の手順を使えば、職場のサーバーでも
安全に問題を切り分けられるはずです。
困ったらログを残して共有してください。
コメント