Ubuntu で sudo apt install ○○ を実行したとき、
E: Unable to locate package curl
というエラーが出て困ったことはありませんか? Linux を使い始めた頃、私も同じエラーに詰まりました。
このエラーの原因は9割以上「apt update を実行していない」ことです。まず sudo apt update を実行してからもう一度試してみてください。それでも解決しない場合は、パッケージ名のタイポや、リポジトリの設定が原因の可能性があります。
本記事では Ubuntu 24.04 LTS / 22.04 LTS のDockerコンテナで実際にエラーを再現し、原因別の解決手順を解説します。
この記事のポイント
- エラーの原因1位は
apt updateの実行忘れ(まずこれを試す) apt-cache search パッケージ名でスペルミスを確認できる- Ubuntu 24.04 は sources.list の形式が変わり、DEB822形式になった
- VPSの最小インストールでは universe リポジトリが無効な場合がある
- 本記事の手順は ubuntu:24.04 Docker公式イメージで実際に動作確認済み(2026-06-13)
目次
- 原因1:apt update を実行していない(最多)
- 原因2:パッケージ名のスペルミス
- 原因3:universe リポジトリが無効になっている
- 原因4:Ubuntu のバージョンにそのパッケージが存在しない
- Ubuntu 22.04 vs 24.04:sources.list の違い
- まとめ
原因1:apt update を実行していない(最多)
Ubuntu をインストールしたばかりの環境や、しばらく触っていなかった環境では、apt のパッケージリストが古い(または空の)状態になっています。この状態でインストールしようとすると E: Unable to locate package が出ます。
実際にDockerコンテナ(ubuntu:24.04)で確認すると、apt update なしでは curl すら見つかりません。

手順1:apt update でパッケージリストを更新する
Hit:1 http://archive.ubuntu.com/ubuntu noble InRelease
Get:2 http://archive.ubuntu.com/ubuntu noble-updates InRelease [126 kB]
…
Reading package lists… Done
Building dependency tree… Done
All packages are up to date.
apt update が完了したら、もう一度インストールを試してください。
Reading package lists… Done
The following NEW packages will be installed:
curl libcurl4t64 …
Setting up curl (8.5.0-2ubuntu10.9) …
Processing triggers for libc-bin (2.39-0ubuntu8.7) …
ubuntu:24.04 コンテナで実測したところ、apt update 後に curl 8.5.0-2ubuntu10.9 のインストールが成功しました(2026-06-13)。

よく一緒に使うコマンド
sudo apt update && sudo apt upgrade -y と続けて実行すると、パッケージリストの更新とインストール済みパッケージのアップグレードを一括で行えます。VPSを借りた直後は必ずこれを実行しておくと安心です。
原因2:パッケージ名のスペルミス
apt update をしても「Unable to locate package」が出る場合、次に疑うのはパッケージ名のタイポです。よくある例として nginx を ngnix と入力してしまうケースがあります。
E: Unable to locate package ngnix
手順2:apt-cache search でパッケージ名を確認する
apt-cache search はインストール前にパッケージの正式名を調べるコマンドです。うろ覚えのパッケージ名や、似た名前のパッケージを探すときに役立ちます。
nginx – small, powerful, scalable web/proxy server
nginx-common – small, powerful, scalable web/proxy server (common files)
nginx-doc – small, powerful, scalable web/proxy server (documentation)
ubuntu:24.04 での実測:nginx の候補として 1.24.0-2ubuntu7.11 が見つかりました(2026-06-13)。

また、apt-cache policy パッケージ名 を使うと、インストール候補のバージョンと取得元リポジトリを確認できます。
nginx:
Installed: (none)
Candidate: 1.24.0-2ubuntu7.11
Version table:
1.24.0-2ubuntu7.11 500
500 http://archive.ubuntu.com/ubuntu noble/main amd64 Packages
Candidate: の行に版数が表示されればインストール可能です。(none) のままだった場合、そのパッケージはこの環境では見つかっていません。
原因3:universe リポジトリが無効になっている
Ubuntu のパッケージは、管理主体によって以下のリポジトリに分類されています。
| リポジトリ | 管理主体 | 含まれるパッケージ例 | デフォルト |
|---|---|---|---|
| main | Canonical(公式) | bash, python3, openssh-server | 有効 |
| universe | コミュニティ | neofetch, httrack, ffmpeg | 環境による |
| restricted | Canonical(非フリー) | nvidia ドライバ等 | 有効 |
| multiverse | コミュニティ(非フリー) | unrar, ttf-mscorefonts | 環境による |
Docker公式イメージ(ubuntu:24.04)では universe が最初から有効ですが、VPSプロバイダーが提供する最小インストールイメージでは universe が無効になっていることがあります。
手順3:universe リポジトリを有効化する
Repository: ‘deb http://archive.ubuntu.com/ubuntu noble universe’
Press [ENTER] to continue or Ctrl-c to cancel:
(Enterを押して続行)
Reading package lists… Done
$ sudo apt update
Reading package lists… Done
$ sudo apt install neofetch
Setting up neofetch (7.1.0-4) …

注意
add-apt-repository コマンドは software-properties-common パッケージに含まれています。もし「command not found」と出た場合は、先に sudo apt install software-properties-common を実行してください。
原因4:Ubuntu のバージョンにそのパッケージが存在しない
Ubuntu のバージョンが上がるにつれ、廃止・名称変更されたパッケージがあります。代表的な例を挙げます。
| 古い名前(22.04以前) | Ubuntu 24.04 での正しい名前 | 備考 |
|---|---|---|
python |
python3 |
Ubuntu 20.04 以降 python2 は非推奨 |
python-pip |
python3-pip |
pip は python3 版を使用 |
ifconfig(net-tools) |
ip(iproute2) |
net-tools は apt install net-tools で別途導入 |
netstat(net-tools) |
ss(iproute2) |
同上 |
たとえば python コマンドが使いたい場合、Ubuntu 24.04 では python3 が正解です。古いチュートリアルをそのままコピーすると詰まるポイントです。
Ubuntu 22.04 vs 24.04:sources.list の違い
Ubuntu 24.04 から、リポジトリ設定ファイルの形式が変わりました。これが原因で「なんか設定が変」と感じるケースがあります。

実際にDockerコンテナ(ubuntu:22.04・ubuntu:24.04)で確認した結果:
- Ubuntu 22.04:
/etc/apt/sources.listにdeb http://... jammy main restricted universe multiverseの形式で記述 - Ubuntu 24.04:
/etc/apt/sources.listはほぼ空(コメントのみ)。新しい DEB822 形式の/etc/apt/sources.list.d/ubuntu.sourcesに設定が集約
Types: deb
URIs: http://archive.ubuntu.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
VPS の Ubuntu 24.04 でリポジトリを確認・編集したい場合は、/etc/apt/sources.list ではなく /etc/apt/sources.list.d/ubuntu.sources を参照してください。
メモ
VPSを借りたばかりのころ、sources.list が空っぽで焦りました。Ubuntu 24.04 からは ubuntu.sources ファイルに移動しているので、最初にそこを確認するクセをつけると良いです。
それでも解決しない場合のチェックリスト
ここまでの手順をすべて試しても解決しない場合、以下を順番に確認してください。
-
sudo apt updateは実行しましたか?
これが最初の確認事項です。エラーなく完了しているか確認してください。 -
パッケージ名は正しいですか?
apt-cache search キーワードで検索し、正式名称を確認してください。 -
Ubuntu のバージョンを確認しましたか?
lsb_release -aでバージョンを確認してください。古いバージョン(18.04以前)ではサポート終了のリポジトリがあります。 -
インターネットに接続できていますか?
ping -c 3 archive.ubuntu.comで疎通確認をしてください。VPSのファイアウォール設定で外向き通信がブロックされている場合があります。 -
ディスク容量は足りていますか?
df -hでディスク使用量を確認してください。/varが満杯だと apt のキャッシュ書き込みに失敗します。
No LSB modules are available.
Distributor ID: Ubuntu
Description: Ubuntu 24.04.1 LTS
Release: 24.04
Codename: noble
$ df -h /var
Filesystem Size Used Avail Use% Mounted on
/dev/vda1 25G 4.2G 20G 18% /
まとめ
「Unable to locate package」エラーの原因と解決策をまとめます。
エラー解決の優先順位
- まず
sudo apt updateを実行する(原因の9割はこれで解決) apt-cache search キーワードでパッケージ名のスペルを確認する- universe / multiverse リポジトリが必要なパッケージは
sudo add-apt-repository universeで有効化 - Ubuntu 24.04 では sources.list.d/ubuntu.sources を確認する
- 古いバージョンで名前が変わったパッケージ(python → python3 など)に注意
本記事の検証は ubuntu:24.04・ubuntu:22.04 の Docker公式イメージで実際にコマンドを実行して確認しました(2026-06-13)。VPSを借りて本格的にサーバーを運用したい方は、以下の記事もあわせて参考にしてください。


コメント