Linuxのパッケージ管理入門|apt・yum・pacmanの違いと使い方を解説

kento_morota 11分で読めます

Linuxでソフトウェアをインストールするとき、Windowsのようにインストーラーをダウンロードして実行する方法はあまり使いません。代わりに使うのがパッケージマネージャー(パッケージ管理ツール)です。

パッケージマネージャーは、ソフトウェアのインストール・更新・削除を一元管理する仕組みで、依存関係の自動解決やセキュリティアップデートの一括適用など、手作業では困難な管理を効率的に行えます。

しかし、Linuxには複数のパッケージマネージャーが存在し、使用するディストリビューションによって異なります。「aptとyumは何が違うの?」「dnfって何?」という疑問を持つ方も多いでしょう。

本記事では、主要なパッケージマネージャーであるapt、yum/dnf、pacmanの違いと使い方を、初心者向けにわかりやすく解説します。Linuxの基本についてはLinuxとは?初心者向け解説を先にご覧ください。

パッケージ管理とは

パッケージ管理の基本概念と、なぜ重要なのかを理解しましょう。

パッケージとは

パッケージとは、ソフトウェアの実行ファイル、設定ファイル、ドキュメントなどを一つにまとめたアーカイブファイルです。Windowsの「.exe」や「.msi」に相当するものと考えるとイメージしやすいでしょう。

Linuxでは主に以下の形式が使われます。

パッケージ形式 拡張子 使用するディストリビューション
deb .deb Ubuntu、Debian
rpm .rpm CentOS、Rocky Linux、Fedora、RHEL
pkg.tar.zst .pkg.tar.zst Arch Linux

パッケージマネージャーの役割

パッケージマネージャーは以下の機能を提供します。

  • インストール:リポジトリからパッケージをダウンロードしてインストール
  • 依存関係の解決:必要な関連パッケージを自動でインストール
  • 更新:インストール済みパッケージを最新版にアップデート
  • 削除:不要なパッケージをアンインストール
  • 検索:利用可能なパッケージを検索
  • 情報表示:パッケージの詳細情報を確認

リポジトリとは

リポジトリ(Repository)は、パッケージが保管されているサーバー上の倉庫のようなものです。パッケージマネージャーはリポジトリに接続してパッケージを取得します。各ディストリビューションは公式リポジトリを運営しており、安全性が検証されたソフトウェアを提供しています。

apt(Ubuntu / Debian系)

apt(Advanced Package Tool)は、UbuntuやDebian系ディストリビューションで使用される標準的なパッケージマネージャーです。中小企業のサーバーでもUbuntu Serverを採用するケースが増えており、aptの知識は実務で直結します。

基本コマンド

操作 コマンド
パッケージリストの更新 sudo apt update
パッケージのインストール sudo apt install パッケージ名
パッケージの削除 sudo apt remove パッケージ名
パッケージの完全削除(設定含む) sudo apt purge パッケージ名
すべてのパッケージを更新 sudo apt upgrade
パッケージの検索 apt search キーワード
パッケージ情報の表示 apt show パッケージ名
不要なパッケージの削除 sudo apt autoremove

実践例:NginxWebサーバーのインストール

# パッケージリストを最新に更新
sudo apt update

# Nginxをインストール
sudo apt install nginx -y

# インストールされたことを確認
nginx -v

# サービスの状態を確認
sudo systemctl status nginx

Nginxの設定方法についてはNginx構築ガイドを参照してください。サービスの管理についてはsystemdサービス管理ガイドで解説しています。

セキュリティアップデートの適用

# パッケージリストの更新
sudo apt update

# セキュリティアップデートのみ適用
sudo apt upgrade -y

# 利用可能なアップデートの確認
apt list --upgradable

セキュリティアップデートの定期適用は、サーバーセキュリティの基本です。cronで自動化することも検討しましょう。

aptとapt-getの違い

以前はapt-getが標準でしたが、現在はaptコマンドに統合されています。aptはapt-getよりも出力が分かりやすく、プログレスバーも表示されます。新しいスクリプトではaptを使うことを推奨しますが、シェルスクリプト内では互換性のためapt-getを使うことも一般的です。

yum / dnf(CentOS / Rocky Linux / RHEL系)

yum(Yellowdog Updater Modified)と、その後継であるdnf(Dandified YUM)は、Red Hat系ディストリビューションで使用されるパッケージマネージャーです。

CentOS 7以前はyum、CentOS 8以降やRocky Linux、Fedoraではdnfが標準です。dnfはyumの互換性を維持しつつ、パフォーマンスと依存関係の解決能力が向上しています。

基本コマンド(dnf / yum共通)

操作 コマンド
パッケージのインストール sudo dnf install パッケージ名
パッケージの削除 sudo dnf remove パッケージ名
すべてのパッケージを更新 sudo dnf update
パッケージの検索 dnf search キーワード
パッケージ情報の表示 dnf info パッケージ名
インストール済み一覧 dnf list installed
リポジトリの一覧 dnf repolist
パッケージグループの確認 dnf group list

実践例:開発ツールのインストール

# パッケージの更新
sudo dnf update -y

# 個別パッケージのインストール
sudo dnf install git vim wget curl -y

# 開発ツールグループのインストール
sudo dnf group install "Development Tools" -y

# 特定のパッケージがインストール済みか確認
dnf list installed | grep nginx

CentOS/Rocky Linux環境の詳細はCentOS・Rocky Linuxガイドをご覧ください。

EPELリポジトリの追加

RHEL系では、公式リポジトリに含まれないパッケージを利用するためにEPEL(Extra Packages for Enterprise Linux)リポジトリを追加することがよくあります。

# EPELリポジトリの追加
sudo dnf install epel-release -y

# EPELから提供されるパッケージの検索
dnf search --repo=epel キーワード

pacman(Arch Linux)

pacmanはArch Linuxとその派生ディストリビューション(Manjaro等)で使用されるパッケージマネージャーです。シンプルなコマンド体系が特徴です。

基本コマンド

操作 コマンド
データベースの同期とシステム更新 sudo pacman -Syu
パッケージのインストール sudo pacman -S パッケージ名
パッケージの削除 sudo pacman -R パッケージ名
依存含む完全削除 sudo pacman -Rns パッケージ名
パッケージの検索 pacman -Ss キーワード
パッケージ情報の表示 pacman -Si パッケージ名
インストール済みの検索 pacman -Qs キーワード

pacmanのフラグ体系

pacmanは大文字のフラグで操作カテゴリを指定するのが特徴です。

  • -S(Sync):リポジトリとの同期・インストール
  • -R(Remove):パッケージの削除
  • -Q(Query):ローカルの問い合わせ
  • -U(Upgrade):ローカルパッケージファイルからインストール

AUR(Arch User Repository)

Arch Linuxでは、公式リポジトリ以外にAURというユーザーコミュニティのリポジトリがあります。AURヘルパー(yayなど)を使うことで、豊富なパッケージを利用できます。

# yayによるAURパッケージのインストール
yay -S パッケージ名

3つのパッケージマネージャーの比較

日常的によく使う操作を中心に、apt・dnf・pacmanを比較します。

操作 apt(Ubuntu) dnf(Rocky) pacman(Arch)
リスト更新 apt update dnf check-update pacman -Sy
インストール apt install pkg dnf install pkg pacman -S pkg
削除 apt remove pkg dnf remove pkg pacman -R pkg
全体更新 apt upgrade dnf update pacman -Syu
検索 apt search word dnf search word pacman -Ss word
情報表示 apt show pkg dnf info pkg pacman -Si pkg
一覧表示 apt list --installed dnf list installed pacman -Q

どのパッケージマネージャーを使う場合でも、基本的な考え方は共通しています。一つを覚えれば、他のパッケージマネージャーへの切り替えもスムーズです。

パッケージ管理のベストプラクティス

パッケージ管理を安全かつ効率的に行うためのベストプラクティスを紹介します。

定期的なアップデート

セキュリティパッチを含むアップデートは定期的に適用しましょう。自動化するにはシェルスクリプトcronを組み合わせます。

#!/bin/bash
# update.sh - パッケージの自動更新スクリプト
LOG_FILE="/var/log/auto-update.log"

echo "=== アップデート実行: $(date) ===" >> "$LOG_FILE"
sudo apt update >> "$LOG_FILE" 2>&1
sudo apt upgrade -y >> "$LOG_FILE" 2>&1
echo "=== アップデート完了: $(date) ===" >> "$LOG_FILE"

不要なパッケージの整理

使わなくなったパッケージは定期的に削除して、ディスク容量を確保しましょう。

# Ubuntu/Debian系
sudo apt autoremove -y
sudo apt clean

# CentOS/Rocky Linux系
sudo dnf autoremove -y
sudo dnf clean all

本番サーバーでの注意点

  • 検証環境でテスト後に本番適用する:メジャーアップデートは検証環境で動作確認
  • アップデート前にバックアップを取るバックアップ手順を事前に整備しておく
  • 不要なリポジトリは追加しない:信頼できるリポジトリのみを使用する
  • 変更履歴を記録する:何をインストール・更新したかをログとして残す

コンテナ環境でのパッケージ管理

Dockerコンテナ内でもパッケージマネージャーを使用します。ベースイメージによってaptやdnfを使い分けます。コンテナ環境では不要なパッケージを含めないことが軽量化のポイントです。

# Dockerfileでの例(Ubuntu系)
RUN apt update && apt install -y \
    nginx \
    && rm -rf /var/lib/apt/lists/*

まとめ

パッケージマネージャーは、Linuxでのソフトウェア管理を効率化する必須ツールです。使用するディストリビューションに応じて適切なツールを選択しましょう。

本記事のポイントを振り返ります。

  • aptはUbuntu/Debian系、dnf(yum)はCentOS/Rocky Linux/RHEL系、pacmanはArch Linuxで使われる
  • パッケージマネージャーはインストール・更新・削除・依存関係の解決を一括管理する
  • セキュリティアップデートの定期適用は、サーバー運用の基本
  • 本番環境では検証後にアップデートを適用し、バックアップを取ることが重要
  • 基本的な操作概念は共通しているため、一つ覚えれば他への応用も容易

パッケージ管理の基本を理解したら、実際にUbuntuサーバーRocky Linuxで環境構築を試してみましょう。Linuxの学習全体の流れについてはLinuxとは?初心者向け解説のロードマップを参考にしてください。

#Linux#パッケージ管理#apt
共有:
無料メルマガ

週1回、最新の技術記事をお届け

AI・クラウド・開発の最新記事を毎週月曜にメールでお届けします。登録は無料、いつでも解除できます。

プライバシーポリシーに基づき管理します

AI活用のヒントをお探しですか?お気軽にご相談ください。

まずは話だけ聞いてもらう