こんにちは、かつコーチです。
「Linuxでソフトを入れたいけど、aptとかyumって何が違うの?」。
Linuxを触り始めると、こうした疑問にぶつかる方が多くいます。
この記事では、Ubuntu環境を基準にパッケージ管理コマンドaptの基本操作と、CentOS/RHEL系で使われるyumとの違いを解説します。
読み終える頃には、ソフトのインストール・更新・削除を自分で行えるようになります。
パッケージ管理とは?
パッケージ・パッケージ管理システムの定義
パッケージとは、ソフトウェア本体と、それを動かすために必要な設定ファイルや依存ライブラリをひとまとめにしたファイルのことです。
パッケージ管理システムとは、このパッケージのインストール・更新・削除を一元管理する仕組みのことです。
Windowsでソフトをインストールする際に公式サイトから.exeをダウンロードするのと違い、Linuxでは基本的にパッケージ管理システム経由でソフトを導入します。
なぜパッケージ管理コマンドが必要なのか
ソフトを個別にダウンロード・コンパイルしてインストールすると、次のような問題が起きやすくなります。
- 必要なライブラリ(依存関係)を自分で調べて揃える必要がある
- バージョン管理が煩雑になり、更新漏れが起きやすい
- アンインストール時に関連ファイルが残り続けることがある
パッケージ管理コマンドを使うと、これらを自動で解決してくれます。
依存関係の解決やリポジトリの仕組みについては、次の記事「パッケージ管理の考え方(依存関係・リポジトリ)」で詳しく解説します。
基本の書き方・実装手順
aptの基本コマンド(Ubuntu・Debian系)
Ubuntu 26.04 LTSを含むDebian系ディストリビューションでは、aptコマンドでパッケージを管理します。
# パッケージリストを最新化する(インストール前に必ず実行)
sudo apt update
# パッケージをインストールする
sudo apt install nginx
# パッケージを最新版に更新する
sudo apt upgrade
# パッケージを削除する(設定ファイルは残る)
sudo apt remove nginx
# パッケージと設定ファイルをまとめて削除する
sudo apt purge nginx
# 使われなくなった依存パッケージを一括削除する
sudo apt autoremove
apt updateはインストール済みパッケージを更新するのではなく、「リポジトリに存在するパッケージ一覧」を最新化するコマンドです。
この違いを理解していないと、次の「つまずきやすい設定・注意点」で紹介するエラーに遭遇します。
yumの基本コマンド(CentOS・RHEL系)
CentOSやRHEL(Red Hat Enterprise Linux)系では、yum、あるいはその後継であるdnfコマンドを使います。
# パッケージをインストールする
sudo yum install nginx
# パッケージを最新版に更新する
sudo yum update
# パッケージを削除する
sudo yum remove nginx
# パッケージを検索する
sudo yum search nginx
yumはaptと違い、updateコマンド1つでリポジトリ情報の更新とパッケージの更新を同時に行う点が特徴です。
apt・yumのコマンド対応表
同じ操作でもコマンド名が異なるため、対応表として整理します。
| 操作 | apt(Ubuntu・Debian系) | yum(CentOS・RHEL系) |
|---|---|---|
| リポジトリ情報の更新 | apt update | yum実行時に自動 |
| パッケージのインストール | apt install <名前> | yum install <名前> |
| パッケージの更新 | apt upgrade | yum update |
| パッケージの削除 | apt remove <名前> | yum remove <名前> |
| パッケージの検索 | apt search <名前> | yum search <名前> |
| インストール済み一覧の表示 | apt list --installed | yum list installed |
どちらを選ぶかは基本的にディストリビューションによって決まるため、迷う場面はほとんどありません。
サーバー構築の際は、まずcat /etc/os-releaseでディストリビューションを確認してから、対応するコマンドを使いましょう。
つまずきやすい設定・注意点
sudoを付け忘れると、権限不足でインストールが失敗します。
apt install nginx
# => E: Could not open lock file /var/lib/dpkg/lock-frontend - open (13: Permission denied)
# => E: Unable to lock directory /var/lib/dpkg/
このエラーが出た場合は、コマンドの先頭にsudoを付けて再実行してください。
よくあるつまずきポイント・エラー対処
apt updateとapt upgradeを混同する
私が実際にUbuntu 26.04 LTSでnginxをインストールしようとしたとき、次のエラーに遭遇しました。
❌ Before
sudo apt install nginx
# => E: Unable to locate package nginx
インストール直後の環境で、リポジトリ情報を一度も更新していなかったことが原因でした。
aptはローカルに保存されたパッケージリストを参照するため、リストが古い(または初期状態で空に近い)と対象パッケージを見つけられません。
✅ After
sudo apt update
sudo apt install nginx
# => nginx が正常にインストールされる
先にapt updateでリポジトリ情報を最新化してからapt installを実行すると、無事にインストールできました。
以降、私は新しいサーバー環境を構築する際、必ず最初にsudo apt updateを実行するようにしています。
apt-getとaptの違いが分からず混乱する
古い記事ではapt-get installという表記もよく見かけます。
❌ Before(古い書き方に固執して混乱する)
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install nginx
apt-getは動作こそしますが、進捗バーの表示がなく、出力もやや見づらい低レベルなコマンドです。
✅ After(Ubuntu 16.04以降は基本的にaptを使う)
sudo apt update
sudo apt upgrade
sudo apt install nginx
aptはapt-getとapt-cacheの主要機能を統合し、人間が使いやすいように整理されたコマンドです。
現在のUbuntu環境で新しく学ぶ場合は、apt-getではなくaptを使えば十分です。
応用・一歩先の使い方
インストール済みパッケージのバージョン固定
サーバー運用では、意図しない自動更新でアプリケーションが動かなくなるのを防ぐため、特定パッケージのバージョンを固定したい場面があります。
# パッケージを固定する(apt upgradeの対象から除外する)
sudo apt-mark hold nginx
# 固定を解除する
sudo apt-mark unhold nginx
# 固定状態のパッケージ一覧を確認する
apt-mark showhold
本番環境でミドルウェアのバージョンを厳密に管理したい場合に有効な手法です。
パッケージの詳細情報を確認する
インストール前にパッケージの内容を確認したいときは、apt showを使います。
apt show nginx
# => バージョン、依存関係、説明文などが表示される
依存関係の内容が気になる場合は、次の記事で解説する「パッケージ管理の考え方」も合わせて確認してください。
まとめ
この記事のポイント
- パッケージ管理システムを使うと、依存関係を自動解決しながらソフトを導入できる
- Ubuntu・Debian系は
apt、CentOS・RHEL系はyum(またはdnf)を使う apt installの前には必ずsudo apt updateでリポジトリ情報を最新化する- 現在のUbuntu環境では、古い
apt-getよりaptを使うのが基本 apt-mark holdで特定パッケージのバージョンを固定できる
次に読むべき記事
パッケージ管理の基本操作を理解したら、次は「依存関係」と「リポジトリ」の仕組みを学びましょう。
「パッケージ管理の考え方(依存関係・リポジトリ)」で詳しく解説しています。