AlmaLinuxでパッケージのバージョンを確認する完全ガイド|管理とアップデートの基本

スポンサーリンク
  1. パッケージ管理の基礎知識
    1. パッケージマネージャーって何?
    2. なぜバージョン確認が重要なのか
  2. dnfコマンドでバージョンを確認する
    1. 特定のパッケージのバージョン確認
    2. インストールされているか確認だけしたい
    3. すべてのインストール済みパッケージを表示
    4. 利用可能な最新バージョンを確認
    5. アップデート可能なパッケージ一覧
    6. パッケージの詳細情報を表示
  3. yumコマンドでバージョンを確認する
    1. yumとdnfの関係
    2. yumコマンドの基本
    3. CentOSからの移行者へ
  4. rpmコマンドでバージョンを確認する
    1. rpmの基本的な使い方
    2. すべてのインストール済みパッケージを表示
    3. パッケージに含まれるファイル一覧
    4. 特定のファイルがどのパッケージのものか調べる
  5. パッケージグループの確認
    1. グループの一覧表示
    2. グループの詳細情報
  6. リポジトリの確認と管理
    1. 有効なリポジトリの一覧
    2. すべてのリポジトリを表示(無効なものも含む)
    3. 特定のリポジトリから利用可能なパッケージ
    4. リポジトリの詳細情報
  7. パッケージの依存関係を確認
    1. 依存関係の表示
    2. このパッケージに依存しているものを調べる
    3. 提供しているファイルやコマンドから検索
  8. セキュリティアップデートの確認
    1. セキュリティアップデートの一覧
    2. 特定のCVEに関する情報
    3. セキュリティアップデートの詳細
    4. セキュリティアップデートだけを実行
  9. バージョン比較とダウングレード
    1. 利用可能なすべてのバージョンを表示
    2. 特定のバージョンにダウングレード
    3. バージョンロック(更新を止める)
  10. パッケージ履歴の確認
    1. 操作履歴の表示
    2. 特定の操作の詳細
    3. 操作を取り消す(ロールバック)
  11. パッケージのキャッシュ管理
    1. キャッシュの確認
    2. キャッシュのクリア
    3. メタデータだけ更新
  12. よくあるトラブルと解決方法
    1. 問題1:「パッケージが見つかりません」エラー
    2. 問題2:依存関係のエラー
    3. 問題3:ロックファイルのエラー
    4. 問題4:「GPGキーがインポートされていません」
    5. 問題5:バージョンが古いまま
  13. コマンドのチートシート
    1. バージョン確認系
    2. 検索系
    3. リポジトリ系
    4. セキュリティ系
    5. 履歴・キャッシュ系
    6. アップデート・ダウングレード系
  14. スクリプトでの活用例
    1. 特定パッケージの監視スクリプト
    2. セキュリティアップデート確認スクリプト
    3. 全パッケージのバージョン一覧をCSVで出力
  15. まとめ:パッケージ管理を習慣化しよう

パッケージ管理の基礎知識

AlmaLinuxでサーバーを運用していると、「このソフトウェアのバージョンは何だっけ?」と確認したくなる場面がありますよね。

パッケージとは、ソフトウェアをインストールしやすい形式にまとめたものです。
AlmaLinuxでは、これらのパッケージを簡単に管理できる仕組みが整っています。

パッケージマネージャーって何?

パッケージマネージャーは、ソフトウェアのインストール、更新、削除を管理するツールのことです。

AlmaLinuxでは、主に3つのツールを使います:

dnf(ディーエヌエフ)

  • AlmaLinux 8以降の標準パッケージマネージャー
  • 高機能で使いやすい
  • yumの後継

yum(ヤム)

  • 従来からあるパッケージマネージャー
  • 実はdnfへのエイリアス(別名)
  • 古い習慣でyumを使う人も多い

rpm(アールピーエム)

  • 最も低レベルなパッケージ管理ツール
  • 直接パッケージを操作
  • 依存関係は自動解決しない

これらを使い分けることで、効率的にパッケージを管理できます。

なぜバージョン確認が重要なのか

パッケージのバージョンを知ることは、サーバー管理の基本です。

重要な理由:

セキュリティ対策

  • 脆弱性のあるバージョンを使っていないか確認
  • セキュリティパッチの適用状況を把握
  • 定期的な更新の必要性を判断

互換性の確認

  • アプリケーションが要求するバージョンを満たしているか
  • 新しいソフトウェアをインストールできるか
  • ライブラリの依存関係を確認

トラブルシューティング

  • 問題が起きた時の原因調査
  • バグが修正されたバージョンかどうか
  • 動作環境の記録

システム管理

  • インストール済みソフトウェアの把握
  • アップデート計画の立案
  • ドキュメント作成

dnfコマンドでバージョンを確認する

AlmaLinux 8以降では、dnfが標準のパッケージマネージャーです。
まずはこのコマンドから見ていきましょう。

特定のパッケージのバージョン確認

基本的な確認方法:

dnf info パッケージ名

例:httpdのバージョン確認

dnf info httpd

実行結果の例:

インストール済みパッケージ
名前         : httpd
エポック     : 0
バージョン   : 2.4.57
リリース     : 5.el9
アーキテクチャ: x86_64
サイズ       : 1.4 M
ソース       : httpd-2.4.57-5.el9.src.rpm
リポジトリー : @System
提供元リポジトリー: appstream
要約         : Apache HTTP Server
URL          : https://httpd.apache.org/
ライセンス   : ASL 2.0
説明         : The Apache HTTP Server is a powerful, efficient, and
             : extensible web server.

表示される主な情報:

  • バージョン:メジャーバージョン番号
  • リリース:パッケージのリビジョン番号
  • エポック:バージョン比較の優先度(通常は気にしなくてOK)
  • アーキテクチャ:CPUアーキテクチャ(x86_64など)
  • リポジトリー:インストール元

インストールされているか確認だけしたい

もっとシンプルに、インストールされているかだけ知りたい場合:

dnf list installed パッケージ名

実行結果の例:

インストール済みパッケージ
httpd.x86_64    2.4.57-5.el9    @appstream

1行で必要な情報が分かりますね。

すべてのインストール済みパッケージを表示

システムにインストールされているすべてのパッケージを確認:

dnf list installed

かなり大量に表示されるので、特定のものだけ探したい場合は:

dnf list installed | grep パッケージ名

例:Pythonに関連するパッケージをすべて表示

dnf list installed | grep python

実行結果の例:

platform-python.x86_64           3.9.16-1.el9    @baseos
python3.x86_64                   3.9.16-1.el9    @baseos
python3-libs.x86_64              3.9.16-1.el9    @baseos
python3-pip.noarch               21.2.3-7.el9    @baseos

利用可能な最新バージョンを確認

アップデート可能なバージョンがあるか調べる:

dnf list パッケージ名

実行結果の例:

インストール済みパッケージ
httpd.x86_64    2.4.57-5.el9    @appstream

利用可能なパッケージ
httpd.x86_64    2.4.57-8.el9    appstream

「利用可能なパッケージ」に新しいバージョンが表示されていれば、アップデートできます。

アップデート可能なパッケージ一覧

システム全体でアップデート可能なものをチェック:

dnf check-update

実行結果の例:

httpd.x86_64           2.4.57-8.el9           appstream
openssl.x86_64         3.0.7-27.el9           baseos
kernel.x86_64          5.14.0-362.el9         baseos

各行が、更新可能なパッケージを示しています。

パッケージの詳細情報を表示

より詳しい情報を見たい場合:

dnf info パッケージ名

インストール済み、利用可能の両方の情報が表示されます。


yumコマンドでバージョンを確認する

AlmaLinuxでは、yumコマンドも使えます。
実はdnfへのエイリアスなので、結果は同じです。

yumとdnfの関係

AlmaLinux 8以降では:

# この2つは全く同じ動作
dnf info httpd
yum info httpd

どちらを使えばいい?

正直なところ、どちらでも構いません

  • dnfを使う:新しい標準に従う
  • yumを使う:長年の習慣で慣れている

ドキュメントでは「dnf」を使うことが推奨されていますが、実際の動作は同じです。

yumコマンドの基本

パッケージ情報の表示:

yum info httpd

インストール済みパッケージの一覧:

yum list installed

アップデート確認:

yum check-update

すべてdnfと同じですね。

CentOSからの移行者へ

CentOS 7からAlmaLinuxに移行した方は、yumコマンドに慣れているでしょう。

良いニュース:

  • yumコマンドはそのまま使える
  • 既存のスクリプトも動作する
  • 徐々にdnfに移行すればOK

rpmコマンドでバージョンを確認する

rpmは、最も基本的なパッケージ管理ツールです。
シンプルで高速なのが特徴です。

rpmの基本的な使い方

インストール済みパッケージのバージョン確認:

rpm -q パッケージ名

実行結果の例:

httpd-2.4.57-5.el9.x86_64

シンプルで速いですね!

詳細情報の表示:

rpm -qi パッケージ名

実行結果の例:

Name        : httpd
Version     : 2.4.57
Release     : 5.el9
Architecture: x86_64
Install Date: 2024年11月01日 10時30分00秒
Group       : System Environment/Daemons
Size        : 1421824
License     : ASL 2.0
Signature   : RSA/SHA256, 2023年08月10日 15時20分00秒, Key ID 51d6647ec21ad6ea
Source RPM  : httpd-2.4.57-5.el9.src.rpm
Build Date  : 2023年08月10日 15時20分00秒
Build Host  : x86-64-01.build.almalinux.org
URL         : https://httpd.apache.org/
Summary     : Apache HTTP Server
Description :
The Apache HTTP Server is a powerful, efficient, and
extensible web server.

dnf infoと似た情報が表示されますが、こちらの方が速く取得できます。

すべてのインストール済みパッケージを表示

rpm -qa

数が多いので、絞り込む:

rpm -qa | grep httpd

実行結果の例:

httpd-2.4.57-5.el9.x86_64
httpd-tools-2.4.57-5.el9.x86_64
httpd-filesystem-2.4.57-5.el9.noarch

関連するすべてのパッケージが表示されます。

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

そのパッケージがどんなファイルをインストールしたか確認:

rpm -ql パッケージ名

実行結果の例:

/etc/httpd
/etc/httpd/conf
/etc/httpd/conf/httpd.conf
/usr/sbin/httpd
/usr/lib64/httpd
...

トラブルシューティングの時に便利です。

特定のファイルがどのパッケージのものか調べる

逆に、このファイルはどのパッケージが提供しているのか知りたい場合:

rpm -qf ファイルのパス

例:/usr/sbin/httpdはどのパッケージ?

rpm -qf /usr/sbin/httpd

実行結果:

httpd-2.4.57-5.el9.x86_64

「このコマンドはどのパッケージで入れたんだっけ?」という時に使えます。


パッケージグループの確認

複数の関連パッケージをまとめた「グループ」という概念があります。

グループの一覧表示

dnf group list

実行結果の例:

利用可能な環境グループ:
   サーバー
   最小限のインストール
   ワークステーション
   仮想化ホスト

インストール済みのグループ:
   開発ツール

利用可能なグループ:
   コンテナー管理
   システムツール
   セキュリティツール

グループの詳細情報

特定のグループに含まれるパッケージを確認:

dnf group info "開発ツール"

実行結果の例:

グループ: 開発ツール
 説明: 開発用の基本的なツール群
 必須のパッケージ:
   autoconf
   automake
   gcc
   gcc-c++
   make
 デフォルトのパッケージ:
   git
   patch
   ...

グループ単位でインストールすると、関連ツールをまとめて入れられて便利です。


リポジトリの確認と管理

パッケージは「リポジトリ」から取得されます。
どのリポジトリが有効か確認する方法を見ていきましょう。

有効なリポジトリの一覧

dnf repolist

実行結果の例:

repo id                     repo の名前
appstream                   AlmaLinux 9 - AppStream
baseos                      AlmaLinux 9 - BaseOS
extras                      AlmaLinux 9 - Extras

主なリポジトリの役割:

  • baseos:OSの基本パッケージ
  • appstream:アプリケーション
  • extras:追加パッケージ

すべてのリポジトリを表示(無効なものも含む)

dnf repolist --all

実行結果の例:

repo id                     repo の名前                        状態
appstream                   AlmaLinux 9 - AppStream            有効
baseos                      AlmaLinux 9 - BaseOS               有効
crb                         AlmaLinux 9 - CRB                  無効
extras                      AlmaLinux 9 - Extras               有効

特定のリポジトリから利用可能なパッケージ

dnf repository-packages リポジトリ名 list

例:appstreamリポジトリのパッケージ一覧

dnf repository-packages appstream list

膨大な数が表示されます。

リポジトリの詳細情報

dnf repoinfo リポジトリ名

実行結果の例:

Repo-id            : appstream
Repo-name          : AlmaLinux 9 - AppStream
Repo-status        : enabled
Repo-revision      : 9.3
Repo-updated       : 2024年10月15日 10時30分00秒
Repo-pkgs          : 5,234
Repo-available-pkgs: 5,150
Repo-size          : 8.2 G
Repo-baseurl       : https://repo.almalinux.org/almalinux/9/AppStream/x86_64/os/

パッケージの依存関係を確認

パッケージは、他のパッケージに依存していることがあります。

依存関係の表示

dnf deplist パッケージ名

例:httpdの依存関係

dnf deplist httpd

実行結果の例:

package: httpd-2.4.57-5.el9.x86_64
  dependency: /bin/sh
   provider: bash-5.1.8-6.el9.x86_64
  dependency: /usr/sbin/useradd
   provider: shadow-utils-4.9-8.el9.x86_64
  dependency: httpd-filesystem = 2.4.57-5.el9
   provider: httpd-filesystem-2.4.57-5.el9.noarch
  dependency: httpd-tools = 2.4.57-5.el9
   provider: httpd-tools-2.4.57-5.el9.x86_64
  ...

どのパッケージが必要か、一目で分かりますね。

このパッケージに依存しているものを調べる

逆に、このパッケージを必要としているものを確認:

dnf repoquery --whatrequires パッケージ名

例:opensslを必要としているパッケージ

dnf repoquery --whatrequires openssl

削除する前に、影響範囲を確認できます。

提供しているファイルやコマンドから検索

特定のファイルを提供しているパッケージを探す:

dnf provides ファイル名

例:/usr/bin/pythonを提供しているパッケージは?

dnf provides /usr/bin/python3

実行結果の例:

python3-3.9.16-1.el9.x86_64 : Python 3.9 interpreter
Repo        : @System
Matched from:
Filename    : /usr/bin/python3

セキュリティアップデートの確認

セキュリティに関わるアップデートだけをチェックする方法です。

セキュリティアップデートの一覧

dnf updateinfo list --security

実行結果の例:

ALSA-2023:4536 Important/Sec. httpd-2.4.57-8.el9.x86_64
ALSA-2023:4610 Moderate/Sec.  openssl-3.0.7-27.el9.x86_64
ALSA-2023:5147 Critical/Sec. kernel-5.14.0-362.el9.x86_64

重要度の意味:

  • Critical:最優先で対応すべき
  • Important:重要、早めに対応
  • Moderate:中程度、計画的に対応
  • Low:低、定期メンテナンスで対応

特定のCVEに関する情報

CVE(脆弱性識別番号)から検索:

dnf updateinfo list --cve CVE-2023-XXXXX

実際のCVE番号を入れると、該当するアップデートが表示されます。

セキュリティアップデートの詳細

dnf updateinfo info ALSA-2023:4536

実行結果の例:

===============================================================================
  ALSA-2023:4536: httpd security update (Important)
===============================================================================
  Update ID: ALSA-2023:4536
     Issued: 2023-08-15
    Updated: 2023-08-15
       Bugs: 2222255 - CVE-2023-27522
            : 2222256 - CVE-2023-25690
   Severity: Important
Description: 
Security fix(es):
* httpd: mod_proxy_uwsgi HTTP response splitting (CVE-2023-27522)
* httpd: HTTP request splitting with mod_rewrite and mod_proxy (CVE-2023-25690)

どんな脆弱性が修正されたか、詳しく分かります。

セキュリティアップデートだけを実行

確認だけでなく、実際に更新する場合:

sudo dnf update --security

セキュリティ関連のパッケージだけが更新されます。


バージョン比較とダウングレード

バージョンを比較したり、古いバージョンに戻したい時の方法です。

利用可能なすべてのバージョンを表示

dnf list --showduplicates パッケージ名

実行結果の例:

httpd.x86_64    2.4.57-5.el9    @appstream
httpd.x86_64    2.4.57-5.el9    appstream
httpd.x86_64    2.4.57-8.el9    appstream

リポジトリに残っている古いバージョンも表示されます。

特定のバージョンにダウングレード

sudo dnf downgrade パッケージ名-バージョン

例:httpdを古いバージョンに戻す

sudo dnf downgrade httpd-2.4.57-5.el9

注意点:

  • セキュリティリスクがあるため、通常は推奨されません
  • テスト環境での検証後に限定すべき
  • 依存関係の問題が発生する可能性

バージョンロック(更新を止める)

特定のパッケージを更新したくない場合:

# dnf-pluginsのインストール(必要に応じて)
sudo dnf install python3-dnf-plugin-versionlock

# バージョンをロック
sudo dnf versionlock add パッケージ名

ロックの確認:

dnf versionlock list

ロックの解除:

sudo dnf versionlock delete パッケージ名

カーネルなど、慎重に更新したいパッケージに使います。


パッケージ履歴の確認

過去のパッケージ操作履歴を確認できます。

操作履歴の表示

dnf history

実行結果の例:

ID     | Command line             | Date and time    | Action(s)      | Altered
------------------------------------------------------------------------
     5 | update                   | 2024-11-01 10:30 | Update         |   15
     4 | install git              | 2024-10-25 14:20 | Install        |    8
     3 | update                   | 2024-10-15 09:15 | Update         |   22
     2 | install httpd            | 2024-10-10 11:00 | Install        |    5
     1 |                          | 2024-10-01 10:00 | Install        |  450

いつ、何をしたか記録されています。

特定の操作の詳細

dnf history info 履歴ID

例:ID 4の詳細を見る

dnf history info 4

実行結果の例:

Transaction ID : 4
Begin time     : 2024年10月25日 14時20分00秒
Begin rpmdb    : 450:1234567890abcdef
End time       : 2024年10月25日 14時21分00秒
End rpmdb      : 458:abcdef1234567890
User           : root <root>
Return-Code    : Success
Command Line   : install git
Transaction performed with:
    Installed     dnf-4.14.0-8.el9.noarch

Packages Altered:
    Install git-2.39.3-1.el9.x86_64
    Install git-core-2.39.3-1.el9.x86_64
    ...

どのパッケージがインストールされたか、詳しく分かります。

操作を取り消す(ロールバック)

sudo dnf history undo 履歴ID

例:ID 4の操作を取り消す

sudo dnf history undo 4

gitをインストールした操作を取り消すので、gitがアンインストールされます。

注意:

  • 依存関係の問題が起きる可能性
  • 重要なシステムパッケージでは慎重に

パッケージのキャッシュ管理

dnfは、ダウンロードしたパッケージをキャッシュします。

キャッシュの確認

du -sh /var/cache/dnf

どれくらいのディスク容量を使っているか確認できます。

キャッシュのクリア

sudo dnf clean all

何が削除されるか:

  • ダウンロードしたパッケージファイル
  • メタデータ
  • キャッシュデータベース

実行後:
次回のdnfコマンドで、リポジトリのメタデータを再ダウンロードします。

メタデータだけ更新

sudo dnf makecache

キャッシュを削除せずに、最新のメタデータを取得します。


よくあるトラブルと解決方法

パッケージ管理でよく遭遇する問題と対処法です。

問題1:「パッケージが見つかりません」エラー

症状:

エラー: 一致したものはありません: パッケージ名

原因:

  • パッケージ名のスペルミス
  • 必要なリポジトリが無効
  • パッケージが存在しない

解決方法:

# パッケージ名を曖昧検索
dnf search キーワード

# すべてのリポジトリを確認
dnf repolist --all

# 無効なリポジトリを有効化
sudo dnf config-manager --set-enabled リポジトリ名

問題2:依存関係のエラー

症状:

エラー: 
 問題: nothing provides libxxx.so.1 needed by パッケージ名

原因:
必要な依存パッケージがインストールされていない

解決方法:

# リポジトリのメタデータを更新
sudo dnf clean all
sudo dnf makecache

# システム全体を更新
sudo dnf update

# EPELリポジトリを追加(必要に応じて)
sudo dnf install epel-release

問題3:ロックファイルのエラー

症状:

Waiting for process with pid XXXXX to finish.

原因:
別のdnf/yumプロセスが実行中

解決方法:

# 実行中のプロセスを確認
ps aux | grep dnf

# 強制的にロックを削除(注意して使用)
sudo rm -f /var/run/dnf.pid

問題4:「GPGキーがインポートされていません」

症状:

警告: パッケージ名.rpm: ヘッダー V4 RSA/SHA256 Signature、鍵 ID XXXXXXXX: NOKEY

原因:
リポジトリのGPGキーが未インポート

解決方法:

# GPGキーのインポート
sudo rpm --import /etc/pki/rpm-gpg/RPM-GPG-KEY-AlmaLinux-9

# または、自動インポートを許可
sudo dnf install --nogpgcheck パッケージ名

ただし、セキュリティのため、通常は鍵を正しくインポートすべきです。

問題5:バージョンが古いまま

症状:
dnf updateしても最新版にならない

原因:

  • リポジトリのキャッシュが古い
  • バージョンロックがかかっている

解決方法:

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

# バージョンロックを確認
dnf versionlock list

# ロックを解除
sudo dnf versionlock delete パッケージ名

コマンドのチートシート

よく使うコマンドを一覧にまとめました。

バージョン確認系

# 基本的な情報表示
dnf info パッケージ名
yum info パッケージ名
rpm -qi パッケージ名

# インストール済み確認
dnf list installed パッケージ名
rpm -q パッケージ名

# すべてのインストール済みパッケージ
dnf list installed
rpm -qa

# 利用可能なバージョン
dnf list パッケージ名
dnf list --showduplicates パッケージ名

# アップデート可能なパッケージ
dnf check-update
yum check-update

検索系

# パッケージ名で検索
dnf search キーワード

# ファイル名からパッケージを探す
dnf provides ファイル名
rpm -qf ファイルのパス

# パッケージに含まれるファイル一覧
rpm -ql パッケージ名

# 依存関係の確認
dnf deplist パッケージ名
dnf repoquery --whatrequires パッケージ名

リポジトリ系

# リポジトリ一覧
dnf repolist
dnf repolist --all

# リポジトリ情報
dnf repoinfo リポジトリ名

# リポジトリの有効化/無効化
sudo dnf config-manager --set-enabled リポジトリ名
sudo dnf config-manager --set-disabled リポジトリ名

セキュリティ系

# セキュリティアップデート確認
dnf updateinfo list --security

# CVE検索
dnf updateinfo list --cve CVE-番号

# アドバイザリの詳細
dnf updateinfo info ALSA-番号

# セキュリティアップデートのみ実行
sudo dnf update --security

履歴・キャッシュ系

# 操作履歴
dnf history
dnf history info 履歴ID

# 操作の取り消し
sudo dnf history undo 履歴ID

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

# メタデータの更新
sudo dnf makecache

アップデート・ダウングレード系

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

# システム全体の更新
sudo dnf update

# ダウングレード
sudo dnf downgrade パッケージ名-バージョン

# バージョンロック
sudo dnf versionlock add パッケージ名
sudo dnf versionlock list
sudo dnf versionlock delete パッケージ名

スクリプトでの活用例

パッケージバージョン確認を自動化する例です。

特定パッケージの監視スクリプト

#!/bin/bash
# パッケージバージョン監視スクリプト

PACKAGE="httpd"
LOG_FILE="/var/log/package-check.log"

# 現在のバージョンを取得
CURRENT_VERSION=$(rpm -q $PACKAGE)

# 利用可能な最新バージョンを取得
LATEST_VERSION=$(dnf list $PACKAGE 2>/dev/null | grep "^$PACKAGE" | tail -1 | awk '{print $2}')

# ログに記録
echo "$(date): Current=$CURRENT_VERSION, Latest=$LATEST_VERSION" >> $LOG_FILE

# 更新が必要か判定
if [ "$CURRENT_VERSION" != "$PACKAGE-$LATEST_VERSION" ]; then
    echo "更新が利用可能です: $LATEST_VERSION"
    # メール通知やSlack通知などを追加可能
fi

セキュリティアップデート確認スクリプト

#!/bin/bash
# セキュリティアップデート確認

SECURITY_UPDATES=$(dnf updateinfo list --security 2>/dev/null | wc -l)

if [ $SECURITY_UPDATES -gt 0 ]; then
    echo "警告: $SECURITY_UPDATES 件のセキュリティアップデートがあります"
    dnf updateinfo list --security

    # Critical/Importantのカウント
    CRITICAL=$(dnf updateinfo list --security 2>/dev/null | grep -c "Critical")
    IMPORTANT=$(dnf updateinfo list --security 2>/dev/null | grep -c "Important")

    echo "Critical: $CRITICAL, Important: $IMPORTANT"
else
    echo "セキュリティアップデートはありません"
fi

全パッケージのバージョン一覧をCSVで出力

#!/bin/bash
# インストール済みパッケージをCSV出力

OUTPUT="packages.csv"

echo "パッケージ名,バージョン,リリース,アーキテクチャ" > $OUTPUT

rpm -qa --qf '%{NAME},%{VERSION},%{RELEASE},%{ARCH}\n' | sort >> $OUTPUT

echo "出力完了: $OUTPUT"

まとめ:パッケージ管理を習慣化しよう

この記事では、AlmaLinuxでパッケージのバージョンを確認する様々な方法を解説してきました。

重要なポイントのおさらい:

  • AlmaLinuxではdnf/yum/rpmの3つのツールを使い分ける
  • dnfは高機能で使いやすい現代的なツール
  • rpmはシンプルで高速な基本ツール
  • バージョン確認はdnf infoまたはrpm -qが基本
  • セキュリティアップデートはdnf updateinfoで確認
  • 履歴管理で過去の操作を追跡できる
  • リポジトリの管理も重要
  • 定期的な確認とアップデートが安全な運用の鍵

パッケージ管理の基本サイクル:

  1. 週次確認:セキュリティアップデートをチェック
  2. 月次確認:システム全体のアップデート計画
  3. 履歴記録:変更内容を記録
  4. テスト:本番環境の前にテスト環境で確認

今すぐできること:

# 1. 現在の状態を確認
dnf list installed | wc -l  # パッケージ数

# 2. セキュリティアップデートをチェック
dnf updateinfo list --security

# 3. アップデート可能なパッケージを確認
dnf check-update

# 4. 重要なパッケージのバージョンを記録
rpm -q kernel httpd openssl > /root/packages-$(date +%Y%m%d).txt

パッケージのバージョン管理は、サーバーの安全性と安定性を保つための基本中の基本です。

定期的にチェックする習慣をつけて、常に最新かつ安全な状態を維持しましょう!

コメント

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