dnfコマンドでインストールしたパッケージを確認する

dnfコマンドでインストール・アップデートしたパッケージの確認方法

自分の環境ではパッケージソフトの更新は、dnfコマンドの自動更新で実施しています。更新されたパッケージ一覧はcockpit経由でメールで通知がきて確認できます。

手動で自動更新で、過去に「dnf upgrad」や「dnf update」でアップデートされたパッケージを確認したい時にする方法ですが、「dnf history」コマンドを利用します

過去のアップデートやインストール、削除などの操作履歴が表示【dnf history】

dnf history」を実行すると過去のアップデートやインストール、削除などの操作履歴が表示されます。
「Altered」の項目が、dnfコマンドによって変更(インストール、アップグレード、削除など)されたパッケージの数を示しています。
実行した各エントリには「ID」が割り当てられており、そのIDを使って特定のアップデートの詳細を確認することも可能です。

$ dnf history 
ID     | Command line              | Date and time    | Action(s)      | Altered
--------------------------------------------------------------------------------
   345 | install python3-pcp       | 2024-11-05 09:59 | Install        |    1   
   344 |                           | 2024-11-02 06:49 | Upgrade        |    1   
   343 |                           | 2024-10-29 06:56 | O, U           |   50   
   342 |                           | 2024-10-24 06:00 | Upgrade        |   15   
   341 |                           | 2024-10-22 06:51 | C, E, I, U     |   40   
   340 | install php               | 2024-10-21 10:54 | D, I           |   25 EE
   339 | remove php                | 2024-10-21 10:53 | Removed        |    7   
   338 | install php               | 2024-10-21 10:41 | I, U           |   25 EE
   337 | remove php                | 2024-10-21 10:40 | Removed        |    6 EE

過去のアップデートやインストールの詳細な履歴を表示【dnf history info <ID>】

上記で、変更されたパッケージが多い、「343」のIDを履歴を確認します。
変更された内容の詳細の確認方法は「dnf history info <ID>」で確認できます

$ dnf history info 343
Transaction ID : 343
Begin time     : Tue 29 Oct 2024 06:56:13 AM JST
Begin rpmdb    : 2f5b7cbb65bf571bb2fc6336b9556f4f4d98be0eca9876be28c322ef2e9b6ab8
End time       : Tue 29 Oct 2024 06:59:13 AM JST (180 seconds)
End rpmdb      : 20a284db0030d57d5385f93e9de65f7bdbb5a7c77bdc91ab9a169834cb7cecc3
User           : System <unset>
Return-Code    : Success
Releasever     : 9
Command Line   : 
Comment        : 
Packages Altered:
    Upgrade   cockpit-327-1.el9.x86_64                         @baseos
    Upgraded  cockpit-323.1-1.el9.x86_64                       @@System
    Upgrade   cockpit-bridge-327-1.el9.x86_64                  @baseos
    Upgraded  cockpit-bridge-323.1-1.el9.x86_64                @@System
    Obsoleted cockpit-pcp-323.1-1.el9.x86_64                   @@System
    Upgrade   cockpit-system-327-1.el9.noarch                  @baseos
    Upgraded  cockpit-system-323.1-1.el9.noarch                @@System
    Upgrade   cockpit-ws-327-1.el9.x86_64                      @baseos
    Upgraded  cockpit-ws-323.1-1.el9.x86_64                    @@System
    Upgrade   dnf-4.14.0-21.el9.noarch                         @baseos
    Upgraded  dnf-4.14.0-18.el9.noarch                         @@System
    Upgrade   dnf-automatic-4.14.0-21.el9.noarch               @baseos
    Upgraded  dnf-automatic-4.14.0-18.el9.noarch               @@System
    Upgrade   dnf-data-4.14.0-21.el9.noarch                    @baseos

変更されたパッケージ名のみ抽出する

「dnf history info <ID>」だけだと、変更されたパッケージ一覧も表示されますが、他の情報も表示されているので出力結果をパイプでつなぎ、grep と awk を組み合わせることでパッケージ名のみを取り出します

$ dnf history info 343 | grep -E 'Upgrade|Upgraded|Obsoleted' | awk '{print $2}'
cockpit-327-1.el9.x86_64
cockpit-323.1-1.el9.x86_64
cockpit-bridge-327-1.el9.x86_64
cockpit-bridge-323.1-1.el9.x86_64
cockpit-pcp-323.1-1.el9.x86_64
cockpit-system-327-1.el9.noarch
cockpit-system-323.1-1.el9.noarch
cockpit-ws-327-1.el9.x86_64
cockpit-ws-323.1-1.el9.x86_64
dnf-4.14.0-21.el9.noarch
dnf-4.14.0-18.el9.noarch
dnf-automatic-4.14.0-21.el9.noarch
dnf-automatic-4.14.0-18.el9.noarch
dnf-data-4.14.0-21.el9.noarch
dnf-data-4.14.0-18.el9.noarch
iwl100-firmware-39.31.5.1-147.el9.noarch
iwl100-firmware-39.31.5.1-146.el9.noarch
iwl1000-firmware-1:39.31.5.1-147.el9.noarch
iwl1000-firmware-1:39.31.5.1-146.el9.noarch

このコマンドの説明は以下の通りです:

  • grep -E 'Upgrade|Upgraded|Obsoleted’:アップデートされたパッケージの行のみを抽出します。
  • awk '{print $2}’:抽出した行から2列目(パッケージ名のみ)を表示します。