システム管理 初級

パッケージ管理の基礎(apt / yum / dnf)

Linuxディストリビューションで使われるパッケージマネージャ(apt・yum・dnf)の基本的な使い方を学ぶ

LinuxではWindowsの「インストーラー」に相当する仕組みとして パッケージマネージャ があります。 コマンド一つでソフトウェアのインストール・更新・削除ができ、依存関係の解決も自動で行ってくれます。 ディストリビューション(OS の種類)によって使うコマンドが異なるため、代表的な3つを押さえておきましょう。

ディストリビューションパッケージマネージャ
Ubuntu / Debianapt
CentOS / RHEL (旧)yum
Fedora / RHEL 8+dnf

パッケージリストを更新する

インストールの前にパッケージの情報を最新化します。特に apt では必須の習慣です。

# apt(Debian系)
sudo apt update

# dnf(Fedora / RHEL 8+)
sudo dnf check-update

ポイント: apt update はインストール済みパッケージのリストを更新するだけで、実際のアップグレードは行いません。

パッケージをインストールする

# apt
sudo apt install パッケージ名

# yum
sudo yum install パッケージ名

# dnf
sudo dnf install パッケージ名

複数のパッケージを一度にインストールするにはスペース区切りで並べます。

sudo apt install curl wget git

パッケージを検索する

名前や説明文でパッケージを探せます。

# apt — パッケージ名と説明文を検索
apt search キーワード

# dnf
dnf search キーワード

特定パッケージの詳細情報を確認するには show / info を使います。

# apt
apt show nginx

# dnf
dnf info nginx

インストール済みパッケージを一覧表示する

# apt
dpkg -l

# yum / dnf
rpm -qa

grep と組み合わせると特定パッケージだけ絞り込めます。

dpkg -l | grep python

パッケージを更新する

# apt — インストール済みパッケージをすべてアップグレード
sudo apt upgrade

# dnf
sudo dnf upgrade

特定のパッケージだけ更新する場合はパッケージ名を指定します。

sudo apt install --only-upgrade nginx
sudo dnf upgrade nginx

パッケージを削除する

# apt — パッケージ本体のみ削除
sudo apt remove パッケージ名

# apt — 設定ファイルも含めて完全削除
sudo apt purge パッケージ名

# dnf
sudo dnf remove パッケージ名

不要な依存パッケージを掃除する

パッケージを削除した後、依存していたパッケージが孤立することがあります。

# apt
sudo apt autoremove

# dnf
sudo dnf autoremove

よくある使い方の組み合わせ例

# システム全体を最新化する(apt の定番コマンド)
sudo apt update && sudo apt upgrade -y

# パッケージをインストールし、確認プロンプトをスキップ
sudo dnf install -y httpd

# あるファイルを提供しているパッケージを調べる
dpkg -S /usr/bin/curl          # Debian系
rpm -qf /usr/bin/curl          # Red Hat系

練習問題

問題 1

Ubuntu 環境で tree コマンドをインストールするには、次のどのコマンドが正しいですか?

  1. apt get tree
  2. sudo apt install tree
  3. sudo apt update tree
  4. yum install tree

問題 2

インストール済みパッケージの一覧から “vim” を含む行だけを表示するコマンドを書いてください(Debian系の環境とします)。

問題 3

Fedora 環境で nginx をインストールした後、設定を間違えたので完全に削除したいです。コマンドを書いてください。

問題 4

sudo apt upgrade を実行する前に必ず行うべきコマンドは何ですか?その理由も答えてください。


答え

問題 1 の答え

2. sudo apt install tree

  • apt get は存在しないコマンドです(正しくは apt または apt-get)。
  • sudo apt update tree はパッケージ名を update に渡せません。
  • yum は Red Hat 系のコマンドのため Ubuntu では使えません。

問題 2 の答え

dpkg -l | grep vim

dpkg -l で全パッケージ一覧を出力し、パイプで grep に渡して “vim” を含む行だけ絞り込みます。

問題 3 の答え

sudo dnf remove nginx

apt とは異なり、dnf には purge サブコマンドがありません。設定ファイルも含めて削除したい場合は rpm コマンドで個別に対処するか、dnf remove 後に手動で /etc/nginx/ などを削除します。

問題 4 の答え

sudo apt update

apt update を先に実行してパッケージリスト(どのバージョンが存在するかの情報)を最新化しないと、古い情報をもとにアップグレードが行われ、最新のバージョンに更新されない場合があります。