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 installed
とdnf list available
から始めて、徐々に高度な機能を覚えていけば、効率的なパッケージ管理ができるようになります。
特にサーバー管理では、パッケージの状況把握がセキュリティと安定性の向上に直結します。
ぜひ実際のシステム管理で活用してみてください!
コメント