【初心者向け】dnfでパッケージ一覧を確認する方法まとめ

Linux

Red Hat系Linux(Fedora、RHEL、CentOS、Rocky Linuxなど)を使っていて、こんなことはありませんか?

  • 「どんなソフトがインストールされているか知りたい」
  • 「インストール可能なパッケージを探したい」
  • 「システムの更新が必要なものはあるかな?」
  • 「特定のリポジトリには何が入っているの?」

そんなときに使うのが、dnfコマンドの一覧表示機能です。

dnfとは?

  • Red Hat系Linuxのパッケージ管理システム
  • yumの後継として開発された
  • ソフトウェアのインストール・削除・更新を管理
  • 依存関係も自動で解決

この記事では、dnfを使った様々なパッケージ一覧の確認方法を、初心者にもわかりやすく説明します。

スポンサーリンク

基本的なパッケージ一覧コマンド

インストール済みパッケージを確認

現在インストールされているパッケージの一覧

dnf list installed

実行結果(例)

Installed Packages
NetworkManager.x86_64                1:1.42.4-1.fc38        @anaconda
bash.x86_64                          5.2.15-1.fc38          @anaconda
curl.x86_64                          8.0.1-1.fc38           @updates
firefox.x86_64                       112.0-2.fc38           @updates
vim-enhanced.x86_64                  9.0.1403-1.fc38        @fedora

表示項目の説明

  • パッケージ名.アーキテクチャ:ソフトウェア名とCPU種類
  • バージョン:現在インストールされているバージョン
  • @リポジトリ名:どのリポジトリからインストールしたか

利用可能なパッケージを確認

インストール可能なパッケージの一覧

dnf list available

実行結果(例)

Available Packages
apache-commons-codec.noarch          1.15-8.fc38            fedora
docker-ce.x86_64                     24.0.2-1.fc38          docker-ce-stable
nodejs.x86_64                        18.16.0-1.fc38         updates
python3-django.noarch                4.2.1-1.fc38           fedora

何が表示される?

  • システムにまだインストールされていないパッケージ
  • 設定されているリポジトリからインストール可能なもの
  • 最新の利用可能バージョン

すべてのパッケージを確認

インストール済み・未インストールを問わず全て表示

dnf list all

注意 非常に大量の情報が表示されます。通常は絞り込みと組み合わせて使用します。

パッケージの検索と絞り込み

特定のパッケージを探す

パッケージ名で検索

dnf list | grep パッケージ名

例1:Pythonに関連するパッケージ

dnf list | grep python

例2:Webサーバー関連

dnf list | grep httpd

例3:データベース関連

dnf list | grep mysql

より詳細な検索

パッケージ名や説明文から検索

dnf search キーワード

例1:エディタを探す

dnf search editor

実行結果(例)

========================= Name Exactly Matched: editor =========================
editor.x86_64 : The default system editor

========================= Name & Summary Matched: editor =========================
nano.x86_64 : A small text editor
vim-enhanced.x86_64 : A version of the VIM editor which includes recent enhancements

例2:開発ツールを探す

dnf search development tools

パッケージ名の一部で絞り込み

ワイルドカードを使用

dnf list python3*

実行結果(例)

python3.x86_64                       3.11.3-1.fc38          @updates
python3-pip.noarch                   23.0.1-2.fc38          @anaconda
python3-setuptools.noarch            67.6.1-1.fc38          @anaconda
python3-dns.noarch                   2.3.0-1.fc38           fedora
python3-requests.noarch              2.28.2-1.fc38          fedora

特定のリポジトリ内のパッケージ確認

リポジトリ一覧の確認

有効なリポジトリを確認

dnf repolist

実行結果(例)

repo id            repo name
fedora             Fedora 38 - x86_64
updates            Fedora 38 - x86_64 - Updates
rpmfusion-free     RPM Fusion for Fedora 38 - Free

特定リポジトリのパッケージ一覧

基本構文

dnf repository-packages リポジトリ名 list

例1:EPELリポジトリの内容

dnf repository-packages epel list

例2:Fedora本体リポジトリの内容

dnf repository-packages fedora list

例3:更新リポジトリの内容

dnf repository-packages updates list

リポジトリ内の利用可能パッケージのみ

未インストールのみ表示

dnf repository-packages epel list available

インストール済みのみ表示

dnf repository-packages fedora list installed

更新・アップグレード関連の確認

更新可能なパッケージ一覧

アップデートが利用可能なパッケージ

dnf check-update

実行結果(例)

curl.x86_64                    8.0.1-2.fc38        updates
firefox.x86_64                 112.0-3.fc38        updates
kernel.x86_64                  6.2.14-300.fc38     updates

結果の見方

  • 左列:パッケージ名
  • 中央:新しいバージョン
  • 右列:提供リポジトリ

セキュリティ更新の確認

セキュリティ関連の更新のみ

dnf updateinfo list security

すべての更新情報

dnf updateinfo list

実行結果(例)

FEDORA-2024-001  bugfix    curl.x86_64
FEDORA-2024-002  security  firefox.x86_64
FEDORA-2024-003  enhancement kernel.x86_64

パッケージの詳細情報確認

基本的な詳細情報

パッケージの詳細表示

dnf info パッケージ名

例:vimの詳細情報

dnf info vim-enhanced

実行結果(例)

Name         : vim-enhanced
Version      : 9.0.1403
Release      : 1.fc38
Architecture : x86_64
Size         : 1.8 M
Source       : vim-9.0.1403-1.fc38.src.rpm
Repository   : fedora
Summary      : A version of the VIM editor which includes recent enhancements
URL          : http://www.vim.org/
License      : Vim and MIT
Description  : VIM (VIsual editor iMproved) is an updated and improved version of the
             : vi editor.  Vi was the first real screen-based editor for UNIX, and is
             : still very popular.  VIM improves on vi by adding new features...

依存関係の確認

パッケージが依存するもの

dnf deplist パッケージ名

例:curlの依存関係

dnf deplist curl

パッケージを必要とするもの

dnf repoquery --whatrequires パッケージ名

ファイル情報の確認

パッケージに含まれるファイル一覧

dnf repoquery --list パッケージ名

特定ファイルを含むパッケージを探す

dnf provides ファイルパス

例:/bin/curlを提供するパッケージ

dnf provides /bin/curl

実際に使える活用例

システムの状況把握

現在のシステム概要を把握

# インストール済みパッケージ数
dnf list installed | wc -l

# 更新可能パッケージ数
dnf check-update | grep -v "Last metadata" | wc -l

# 有効なリポジトリ数
dnf repolist | grep -v "repo id" | wc -l

セキュリティチェック

セキュリティ更新の確認ルーチン

#!/bin/bash
echo "=== セキュリティ更新チェック ==="
dnf updateinfo list security | head -10

echo "=== 重要な更新 ==="
dnf updateinfo list important | head -5

echo "=== 全体の更新可能数 ==="
dnf check-update | wc -l

開発環境の構築支援

Python開発環境の確認

# Python関連パッケージの確認
dnf list installed | grep python3

# 利用可能なPythonライブラリ
dnf list available | grep python3- | head -20

# 開発ツールの確認
dnf group list | grep -i development

システム管理用レポート

月次レポート用スクリプト

#!/bin/bash
echo "システム状況レポート $(date)"
echo "================================"

echo "インストール済みパッケージ数:"
dnf list installed | wc -l

echo "更新可能パッケージ:"
dnf check-update | grep -v "Last metadata" | head -10

echo "セキュリティ更新:"
dnf updateinfo list security | head -5

echo "容量の大きなパッケージ TOP5:"
dnf repoquery --installed --queryformat="%{size} %{name}" | sort -nr | head -5

トラブルシューティング

よくあるエラーと対処法

エラー1:メタデータの問題

Error: Failed to download metadata for repo 'fedora'

対処法

# キャッシュをクリア
sudo dnf clean all

# メタデータを強制更新
sudo dnf makecache --refresh

エラー2:権限エラー

Error: This command has to be run with superuser privileges

対処法

# sudoを付けて実行
sudo dnf list installed

エラー3:リポジトリが見つからない

Error: Unknown repo: 'epel'

対処法

# EPELリポジトリをインストール
sudo dnf install epel-release

# リポジトリ一覧を確認
dnf repolist all

パフォーマンスの改善

大量のパッケージ表示を高速化

# ページャーを使用
dnf list all | less

# 出力をファイルに保存
dnf list all > all_packages.txt

# 特定の情報のみ抽出
dnf list installed | awk '{print $1}' | sort

高度な活用方法

カスタムフィルタリング

特定の条件でパッケージを抽出

# サイズが大きなパッケージ
dnf repoquery --installed --queryformat="%{size} %{name}" | \
  awk '$1 > 100000000 {print $2, $1/1000000 "MB"}' | sort -k2 -nr

# 最近インストールしたパッケージ
dnf history list | head -10

# 特定の日付以降にインストールしたパッケージ
dnf history info $(dnf history list | grep "2024-06" | awk '{print $1}')

複数システムでの比較

パッケージリストの出力と比較

# システムAのパッケージリスト
dnf list installed | awk '{print $1}' | sort > systemA_packages.txt

# システムBと比較(別サーバーで実行後、ファイルを比較)
diff systemA_packages.txt systemB_packages.txt

自動化スクリプト

定期実行用の監視スクリプト

#!/bin/bash
# パッケージ状況監視スクリプト

LOG_FILE="/var/log/package_status.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')

echo "[$DATE] パッケージ状況チェック開始" >> $LOG_FILE

# 更新可能パッケージ数をログに記録
UPDATE_COUNT=$(dnf check-update 2>/dev/null | grep -v "Last metadata" | wc -l)
echo "[$DATE] 更新可能パッケージ数: $UPDATE_COUNT" >> $LOG_FILE

# セキュリティ更新があれば警告
SECURITY_COUNT=$(dnf updateinfo list security 2>/dev/null | wc -l)
if [ $SECURITY_COUNT -gt 0 ]; then
    echo "[$DATE] 警告: セキュリティ更新が $SECURITY_COUNT 件あります" >> $LOG_FILE
fi

echo "[$DATE] チェック完了" >> $LOG_FILE

まとめ

よく使うコマンド一覧

目的コマンド使用場面
インストール済み確認dnf list installed現在の状況把握
利用可能パッケージdnf list available新規ソフト探し
パッケージ検索dnf search キーワード目的のソフト発見
更新可能確認dnf check-updateシステム保守
詳細情報dnf info パッケージ名インストール前確認
リポジトリ内容dnf repository-packages リポジトリ名 listリポジトリ管理

覚えておくべきポイント

基本操作

  • dnf listで様々な一覧表示
  • grepとの組み合わせで絞り込み
  • dnf infoで詳細確認

システム管理

  • 定期的な更新確認
  • セキュリティ更新の監視
  • パッケージの依存関係把握

効率化

  • ワイルドカードの活用
  • リポジトリ別での管理
  • 自動化スクリプトの活用

トラブル回避

予防策

  • 定期的なメタデータ更新
  • リポジトリ設定の確認
  • システム全体の更新計画

対処法

  • キャッシュクリアで解決
  • 権限の確認
  • ログファイルでの原因調査

おわりに

dnfのパッケージ一覧機能は、Red Hat系Linuxを管理する上で必須のスキルです。

この記事で学んだこと

  • 基本的な一覧表示方法
  • 絞り込みと検索テクニック
  • システム管理での活用方法
  • トラブル対処法

最初はdnf list installeddnf list availableから始めて、徐々に高度な機能を覚えていけば、効率的なパッケージ管理ができるようになります。

特にサーバー管理では、パッケージの状況把握がセキュリティと安定性の向上に直結します。

ぜひ実際のシステム管理で活用してみてください!

コメント

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