Ubuntuのapt実行時エラーの原因と解決法まとめ

トラブル解決

Ubuntu で apt installapt update を実行したときに、突然赤いエラーが出て止まってしまった経験はありますか。「E: Unable to locate package」「Could not get lock」「dpkg was interrupted」——どれも初めて見ると何が起きたのか分からず焦りますが、パターンを把握しておけばほぼ確実に解決できます

本記事では Ubuntu 24.04 LTS の Docker 公式イメージ(ubuntu:24.04)を使って apt のエラーを実際に再現し、その解決コマンドを実測で確認しました。apt 2.8.3 / dpkg 1.22.6(2026-06-13 時点)の環境で検証しています。

この記事のポイント

  • E: Unable to locate package の原因はほぼ「apt update 未実行」か「パッケージ名のtypo」
  • ロックファイルエラーは別の apt プロセスが動いていないか確認してから対処する
  • sudo dpkg --configure -a は dpkg 中断エラーの万能修復コマンド
  • Ubuntu 24.04 では apt が 2.8.3 に、sources.list が DEB822 形式(ubuntu.sources)に変わっている

目次

  1. 前提環境
  2. E: Unable to locate package(最もよく出るエラー)
  3. E: Could not get lock(ロックファイルエラー)
  4. E: dpkg was interrupted(dpkg 中断エラー)
  5. W: GPG error / NO_PUBKEY(GPGキーエラー)
  6. E: Sub-process /usr/bin/dpkg returned an error code (1)
  7. エラー早見表
  8. まとめ

前提環境

本記事のコマンドは次の環境で実測しています。

項目
OS Ubuntu 24.04.4 LTS(noble)
apt バージョン 2.8.3
dpkg バージョン 1.22.6
実行環境 Docker 公式イメージ ubuntu:24.04(2026-06-13 実測)

注意

Ubuntu 22.04 LTS(apt 2.4.14)でも同じコマンドで解決できますが、/etc/apt/sources.list の書き方が異なります。22.04 では従来形式の sources.list、24.04 では DEB822 形式の /etc/apt/sources.list.d/ubuntu.sources が使われています。

E: Unable to locate package(最もよく出るエラー)

E: Unable to locate package <パッケージ名> は apt エラーの中で最も発生頻度が高いものです。Ubuntu 24.04 の Docker コンテナで再現しました。

E: Unable to locate package の再現と解決(ubuntu:24.04 実測 2026-06-13)
E: Unable to locate package の再現と解決(ubuntu:24.04 実測 2026-06-13)

①原因1:apt update を実行していない

実際に上の図を見てもわかる通り、コンテナ起動直後や OS インストール直後は、パッケージ一覧が空の状態です。この状態で apt install を実行しても「どこにもそのパッケージが見つからない」というエラーになります。

解決策はシンプルです。まず apt update を実行してパッケージ一覧を最新化します。

ubuntu@server: ~
$ sudo apt update Hit:1 http://jp.archive.ubuntu.com/ubuntu noble InRelease Get:2 http://jp.archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB] Reading package lists… Done $ sudo apt install -y curl Setting up curl (8.5.0-2ubuntu10.9) …

apt update で取得するのは「どんなパッケージが存在するか」という一覧情報(インデックス)であり、実際のパッケージはダウンロードしません。高速に完了するので、インストール前の習慣にしましょう。

②原因2:パッケージ名のtypo

パッケージ名を間違えてもまったく同じエラーが出ます。実測した例を紹介します。

ubuntu@server: ~
$ sudo apt install ngnix E: Unable to locate package ngnix $ sudo apt install nginx Setting up nginx (1.24.0-2ubuntu7.11) …

ngnix(n と g が逆)は正しくは nginx です。パッケージ名は apt-cache search で確認してからインストールすると確実です。

apt-cache search / show / policy の実出力(ubuntu:24.04 実測 2026-06-13)
apt-cache search / show / policy の実出力(ubuntu:24.04 実測 2026-06-13)
ubuntu@server: ~
$ apt-cache search nginx nginx – small, powerful, scalable web/proxy server $ apt-cache policy nginx nginx: Installed: (none) Candidate: 1.24.0-2ubuntu7.11

apt-cache search <キーワード> でパッケージ名を探し、apt-cache policy <パッケージ名> でインストール候補バージョンを確認できます。ubuntu:24.04 環境では nginx 1.24.0-2ubuntu7.11 がインストール候補であることを実測で確認しました。

③原因3:リポジトリが有効になっていない

Ubuntu のデフォルトリポジトリには「main」「restricted」「universe」「multiverse」の4種類があります。Ubuntu 24.04 では universemultiverse が最初から有効になっている場合が多いですが、カスタム環境では無効になっていることがあります。

ubuntu@server: ~
$ sudo add-apt-repository universe $ sudo apt update $ sudo apt install <パッケージ名>

サードパーティのソフトウェア(例: NodeSource の Node.js、Docker公式リポジトリなど)は専用のリポジトリを追加する必要があります。各ソフトウェアの公式インストールガイドに従って add-apt-repository または /etc/apt/sources.list.d/ への設定追加を行ってください。

著者アイコン
著者アイコン

正直、E: Unable to locate package が出たときは9割「apt update 忘れ」か「パッケージ名のtypo」です。まずこの2つを確認するクセをつけるとかなり解決が早くなりますよ。

E: Could not get lock(ロックファイルエラー)

次のようなエラーが出た場合は、ロックファイルの問題です。

ubuntu@server: ~
E: Could not get lock /var/lib/dpkg/lock-frontend. It is held by process 1234 (apt-get) N: Be aware that removing the lock file is not a solution and may break your system. E: Unable to acquire the dpkg frontend lock (/var/lib/dpkg/lock-frontend), is another process using it?

手順1:別の apt プロセスが動いていないか確認する

Ubuntu のバックグラウンドで自動更新(unattended-upgrades)が動いていると、手動で apt を実行したときにロックが競合します。まず数分待って再試行するのが最も安全な対処法です。

ubuntu@server: ~
$ sudo lsof /var/lib/dpkg/lock COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME apt-get 1234 root 4uW REG … /var/lib/dpkg/lock

lsof でロックを保持しているプロセスの PID を確認し、そのプロセスが終了するのを待ちます。

手順2:プロセスが存在しない場合は lock ファイルを削除する

注意

lock ファイルを削除するのは、本当に別プロセスが動いていないことを確認した後にしてください。実行中のプロセスのロックを強制削除するとパッケージデータベースが壊れることがあります。

ubuntu@server: ~
$ sudo rm /var/lib/dpkg/lock $ sudo rm /var/lib/dpkg/lock-frontend $ sudo rm /var/cache/apt/archives/lock $ sudo dpkg –configure -a $ sudo apt update

Ubuntu 24.04 でロックファイルが存在する場所は、/var/lib/dpkg/lock(dpkg のロック)と /var/lib/apt/lists/lock(apt のリスト取得ロック)の2か所です。ubuntu:24.04 コンテナで実測したところ、どちらのファイルも正常時は 0 バイトで存在していました。

dpkg --configure -a とロックファイル確認の実出力(ubuntu:24.04 実測 2026-06-13)
dpkg –configure -a とロックファイル確認の実出力(ubuntu:24.04 実測 2026-06-13)

E: dpkg was interrupted(dpkg 中断エラー)

電源断や Ctrl+C でパッケージのインストール・削除が途中で中断されると、次回の apt 実行時に次のエラーが出ることがあります。

ubuntu@server: ~
E: dpkg was interrupted, you must manually run ‘sudo dpkg –configure -a’ to correct the problem.

解決:sudo dpkg –configure -a を実行する

sudo dpkg --configure -a はこのエラーの特効薬です。中断された設定処理を再開し、パッケージデータベースを正常な状態に戻します。

ubuntu@server: ~
$ sudo dpkg –configure -a (問題がなければ出力なしで終了) $ sudo apt install -f 0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

sudo apt install -f--fix-broken の短縮形)も合わせて実行すると、壊れた依存関係を自動修復してくれます。ubuntu:24.04 コンテナで dpkg --configure -a を実行した場合、正常環境では出力なしで即時終了しました(2026-06-13 実測)。

W: GPG error / NO_PUBKEY(GPGキーエラー)

apt update 時に次のような警告が出る場合は、リポジトリの GPG 公開鍵が未登録か期限切れになっています。

ubuntu@server: ~
W: GPG error: http://apt.example.com noble Release: The following signatures couldn’t be verified because the public key is not available: NO_PUBKEY ABCDEF1234567890 E: The repository ‘http://apt.example.com noble Release’ is not signed.

解決:GPG キーを追加する

エラーメッセージの NO_PUBKEY に続く文字列(例: ABCDEF1234567890)がキーIDです。

ubuntu@server: ~
$ sudo apt-key adv –keyserver keyserver.ubuntu.com –recv-keys ABCDEF1234567890 Executing: /tmp/apt-key-gpghome.xxx/gpg.1.sh –keyserver keyserver.ubuntu.com –recv-keys ABCDEF1234567890 gpg: key ABCDEF1234567890: public key imported $ sudo apt update Reading package lists… Done

注意

Ubuntu 22.10 以降では apt-key は非推奨(deprecated)になっています。新しい方法は curl -fsSL <key-url> | sudo gpg --dearmor -o /etc/apt/keyrings/<name>.gpg でキーを /etc/apt/keyrings/ に保存し、sources に signed-by= を指定する形式が推奨されています。

E: Sub-process /usr/bin/dpkg returned an error code (1)

このエラーは dpkg がパッケージの設定・展開中に問題が発生したことを示します。多くの場合、エラー3(dpkg was interrupted)の修復手順で解決します。

ubuntu@server: ~
$ sudo dpkg –configure -a $ sudo apt install -f $ sudo apt-get clean $ sudo apt update $ sudo apt install <問題のパッケージ名>

それでも解決しない場合は、エラーメッセージの直前に出力される dpkg: error processing package <名前> のパッケージ名を特定し、そのパッケージのログ(/var/log/dpkg.log)を確認します。

エラー早見表

本記事で取り上げた5つのエラーとその解決コマンドをまとめます。

aptよくあるエラーと解決コマンド一覧
aptよくあるエラーと解決コマンド一覧

まとめ

Ubuntu の apt エラーは見た目が怖いですが、原因のパターンは限られています。

  • E: Unable to locate package → まず sudo apt update。それでも出たらパッケージ名のtypoと apt-cache search で確認
  • E: Could not get lock → 別プロセスが動いていないか確認してからロックファイルを削除し dpkg --configure -a
  • E: dpkg was interruptedsudo dpkg --configure -a で一発解決
  • W: GPG error / NO_PUBKEYapt-key adv --keyserver でキーを追加
  • Sub-process dpkg returned an error code (1)dpkg --configure -a && apt install -f

今回の検証は Ubuntu 24.04.4 LTS(noble)の Docker 公式イメージ ubuntu:24.04(apt 2.8.3 / dpkg 1.22.6)を使って 2026-06-13 に実測したものです。

apt update 完全実行ログ(ubuntu:24.04 実測 2026-06-13)
apt update 完全実行ログ(ubuntu:24.04 実測 2026-06-13)

Ubuntu の基本操作に慣れてきたら、VPS を借りて本番環境での運用に挑戦してみましょう。apt の使い方が身についていれば、サーバーのセットアップも格段にスムーズになります。

コメント

タイトルとURLをコピーしました