サーバー linux

【yum・dnf】実行履歴の確認ともとに戻す方法

RHEL系のLinuxの場合ではパッケージ管理ツールを使っていると思います。

このyum・dnfコマンドでは実行履歴過去何をインストールしたのか確認することができ、過去インストールしたものをもとに戻す(undo)方法があったのでメモ

【yum・dnf】実行履歴の確認

実行履歴を確認する方法は「yum history」または「dnf history」コマンドを実行することで確認できます。

【yum・dnf】 history

RockyLinux(RHEL8ベース)で確認したところ、「yum・dnf」どちらとも同じ結果になりました。

[root@localhost ~]# yum history
ID     | コマンドライン                                 | 日時             | 動作           | 変更さ
-----------------------------------------------------------------------------------------------------
    13 | install java-1.8.0-openjdk-devel               | 2021-12-12 23:22 | Install        |    3
    12 | install 389-ds-base 389-ds-base-devel          | 2021-12-12 20:34 | Install        |   28
    11 | install java-11-openjdk java-11-openjdk-devel  | 2021-12-12 03:25 | Install        |    9
    10 | install nginx                                  | 2021-12-12 01:29 | Install        |    8
     9 | update                                         | 2021-12-12 00:54 | Upgrade        |    1 EE
     8 | install gitlab-runner                          | 2021-12-09 22:12 | Install        |    7 EE
     7 | update                                         | 2021-12-09 22:09 | Upgrade        |    2
     6 | install mysql                                  | 2021-12-05 22:46 | Install        |    3
     5 | install docker-ce docker-ce-cli containerd.io  | 2021-12-05 18:47 | E, I, O        |    9
     4 | -y remove podman                               | 2021-12-05 18:41 | Removed        |    4
     3 | install -y yum-utils                           | 2021-12-05 18:37 | Install        |    1
     2 | update                                         | 2021-12-05 01:52 | I, U           |   57
     1 |                                                | 2021-12-05 01:21 | Install        | 1371 EE

[root@localhost ~]# dnf history
ID     | コマンドライン                                 | 日時             | 動作           | 変更さ
-----------------------------------------------------------------------------------------------------
    13 | install java-1.8.0-openjdk-devel               | 2021-12-12 23:22 | Install        |    3
    12 | install 389-ds-base 389-ds-base-devel          | 2021-12-12 20:34 | Install        |   28
    11 | install java-11-openjdk java-11-openjdk-devel  | 2021-12-12 03:25 | Install        |    9
    10 | install nginx                                  | 2021-12-12 01:29 | Install        |    8
     9 | update                                         | 2021-12-12 00:54 | Upgrade        |    1 EE
     8 | install gitlab-runner                          | 2021-12-09 22:12 | Install        |    7 EE
     7 | update                                         | 2021-12-09 22:09 | Upgrade        |    2
     6 | install mysql                                  | 2021-12-05 22:46 | Install        |    3
     5 | install docker-ce docker-ce-cli containerd.io  | 2021-12-05 18:47 | E, I, O        |    9
     4 | -y remove podman                               | 2021-12-05 18:41 | Removed        |    4
     3 | install -y yum-utils                           | 2021-12-05 18:37 | Install        |    1
     2 | update                                         | 2021-12-05 01:52 | I, U           |   57
     1 |                                                | 2021-12-05 01:21 | Install        | 1371 EE
[root@localhost ~]#

各種説明

動作

「動作」はyumでどの行動を行ったかを表示します。
複数の動作を行った場合は省略形で表示されるようです。

Action省略形詳細
DowngradeD旧バージョンにダウングレードした際に表示
EraseEパッケージを削除した際に表示
InstallI新規にパッケージをインストールした際に表示
ObsoletingOパッケージが廃止として記録された際に表示
Reinstall(Removed)R再インストールした際に表示
UpdateU新しいバージョンに更新した際に表示
動作の内容と省略形参考(参考:【Redhat社】6.2.6. トランザクション履歴の活用より)

Rocky LinuxではRemovedになってるけどReinstallと同じかな。

変更さ

「変更さ」はどれくらいのパッケージを変更したのかを英数字で表示されます。

数値の場合は変更したパッケージ数になり、英字もしくは記号の場合は下記の意味合いを持つようです。

記号詳細
<トランザクションが終了する前に、yum以外でrpmdbデータベースが変更された際に表示
>トランザクションが終了した後に、yum以外でrpmdbデータベースが変更された際に表示
*トランザクション失敗で終了した際に表示
#終了コードが0以外でyumのトランザクションが終了(正常終了)した際に表示
Eエラーまたは警告を表示してyumのトランザクションが終了した際に表示
Pyum実行する前にrpmdbに問題があった場合に表示(yum自体は正常終了)
s--skip-blokenで特定のパッケージが省略された場合に表示(yum自体は正常終了)
変更さの記号の意味 (参考:【Redhat社】6.2.6. トランザクション履歴の活用より)

上記コマンドでは「EE」と表示されているが、単一のトランザクションエラーの場合は「E」で、複数のトランザクションエラーが発生した場合は「EE」で表示されるらしい。(Fedora Forumより)

特定パッケージの変更履歴を見たい場合

特定のパッケージの履歴を見たい場合はhistoryの後に検索したいパッケージ名を入れたら検索できます。

[root@localhost ~]# yum history  java-11-openjdk
ID     | コマンドライン                                 | 日時             | 動作           | 変更さ
-----------------------------------------------------------------------------------------------------
    11 | install java-11-openjdk java-11-openjdk-devel  | 2021-12-12 03:25 | Install        |    9

特定トランザクションの詳細情報を確認したい場合

yum historyではトランザクション IDごとに表示サマリ形式として表示されますが、詳細にインストール情報を確認したい場合は「yum history info 【id】」で確認することができます。
トランザクションIDは省略した場合は最新のトランザクション情報表示します。
トランザクションIDは「 yum history info 【id】..【id】」で範囲指定も可能です。

[root@localhost ~]# yum history info 11
トランザクション ID : 11
開始時間            : 2021年12月12日 03時25分41秒
開始 rpmdb          : 1374:9eb9e5f8c6476f3580bcbcbe05f6015d16e2471f
終了時間            : 2021年12月12日 03時25分52秒 (11 秒)
終了 rpmdb          : 1383:bff81f1a0d69d58bfb75f50a4cd1141f3521f1d6
ユーザー            : root <root>
終了コード          : 成功
Releasever     : 8
コマンドライン      : install java-11-openjdk java-11-openjdk-devel
コメント        :
変更されたパッケージ:
    インストール copy-jdk-configs-4.0-2.el8.noarch                                  @appstream
    インストール java-11-openjdk-1:11.0.13.0.8-3.el8_5.x86_64                       @appstream
    インストール java-11-openjdk-devel-1:11.0.13.0.8-3.el8_5.x86_64                 @appstream
    インストール java-11-openjdk-headless-1:11.0.13.0.8-3.el8_5.x86_64              @appstream
    インストール javapackages-filesystem-5.3.0-2.module+el8.3.0+125+5da1ae29.noarch @appstream
    インストール ttmkfdir-3.0.9-54.el8.x86_64                                       @appstream
    インストール tzdata-java-2021e-1.el8.noarch                                     @appstream
    インストール xorg-x11-fonts-Type1-7.5-19.el8.noarch                             @appstream
    インストール lksctp-tools-1.0.18-3.el8.x86_64                                   @baseos

変更さで「E」となっているものを確認したところ、エラー情報も表示されておりました。

[root@localhost ~]# yum history info 9
トランザクション ID : 9
開始時間            : 2021年12月12日 00時54分06秒
開始 rpmdb          : 1366:45e708c40d5e33290e064ad17420bcad166604f0
終了時間            : 2021年12月12日 00時55分02秒 (56 秒)
終了 rpmdb          : 1366:18315aa29dc477a8ddda5c4b77655ffa427d2b02
ユーザー            : root <root>
終了コード          : 成功
Releasever     : 8
コマンドライン      : update
コメント        :
変更されたパッケージ:
    Upgrade  gitlab-runner-14.5.2-1.x86_64 @runner_gitlab-runner
    Upgraded gitlab-runner-14.5.1-1.x86_64 @@System
Scriptlet の出力:
   1 GitLab Runner: detected user gitlab-runner
   2 Runtime platform                                    arch=amd64 os=linux pid=223951 revision=e91107dd version=14.5.2
   3 gitlab-runner: the service is not installed
   4 Runtime platform                                    arch=amd64 os=linux pid=223958 revision=e91107dd version=14.5.2
   5 gitlab-ci-multi-runner: the service is not installed
   6 Runtime platform                                    arch=amd64 os=linux pid=224000 revision=e91107dd version=14.5.2
   7 Runtime platform                                    arch=amd64 os=linux pid=224055 revision=e91107dd version=14.5.2
   8 /usr/share/gitlab-runner/clear-docker-cache: 行 16: /bin/docker: 許可がありません

【yum・dnf】で特定トランザクションIDの実行を取りやめる方法

【yum・dnf】history undo

パッケージ情報を誤ってインストールした場合、1つだけでしたらyum removeなどで消すことができますが、依存関係がたくさんあったりするともとに戻すのにかなり苦労します。
その場合は【yum・dnf】 undoを使うことで簡単に戻すことができます。

例えば、RHELリポジトリ標準のnodejsを誤ってインストールし、取消したい場合は下記のように実施します。

[root@localhost ~]# yum history info 14
トランザクション ID : 14
開始時間            : 2022年01月24日 01時38分33秒
開始 rpmdb          : 1414:1557853b71d4945053a68f60ebd054e7f1d64079
終了時間            : 2022年01月24日 01時38分37秒 (4 秒)
終了 rpmdb          : 1417:242b24cbac240dc3bb5bd70db2dcbb773f8ecebd
ユーザー            : root <root>
終了コード          : 成功
Releasever     : 8
コマンドライン      : install nodejs
コメント        :
変更されたパッケージ:
    インストール nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64           @appstream
    インストール nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64 @appstream
    インストール npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64    @appstream


[root@localhost ~]# yum history undo 14
メタデータの期限切れの最終確認: 0:00:10 時間前の 2022年01月24日 01時40分56秒 に実施しました。
依存関係が解決しました。
=====================================================================================================
 パッケージ         Arch     バージョン                                           リポジトリー サイズ
=====================================================================================================
削除中:
 nodejs             x86_64   1:10.24.0-1.module+el8.3.0+101+f84c7154              @appstream    30 M
 nodejs-full-i18n   x86_64   1:10.24.0-1.module+el8.3.0+101+f84c7154              @appstream    26 M
依存関係パッケージの削除:
 npm                x86_64   1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154    @appstream    15 M

トランザクションの概要
=====================================================================================================
削除  3 パッケージ

解放された容量: 71 M
これでよろしいですか? [y/N]: y
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                             1/1
  削除             : nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64                       1/3
  削除             : npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64                2/3
  削除             : nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             3/3
  scriptletの実行中: nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             3/3
  検証             : nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64                       1/3
  検証             : nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             2/3
  検証             : npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64                3/3

削除しました:
  nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64
  nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64
  npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64

完了しました!

これでパッケージ上は元通りです。

undo実行もhistoryに記録される。

yum実行履歴にもしっかり記録されるので、いつやり直したのかもわかるようになってます。

完了しました!
[root@localhost ~]# yum history
ID     | コマンドライン                                 | 日時             | 動作           | 変更さ
-----------------------------------------------------------------------------------------------------
    15 | history undo 14                                | 2022-01-24 01:41 | Removed        |    3
    14 | install nodejs                                 | 2022-01-24 01:38 | Install        |    3
    13 | install java-1.8.0-openjdk-devel               | 2021-12-12 23:22 | Install        |    3
    12 | install 389-ds-base 389-ds-base-devel          | 2021-12-12 20:34 | Install        |   28
    11 | install java-11-openjdk java-11-openjdk-devel  | 2021-12-12 03:25 | Install        |    9
    10 | install nginx                                  | 2021-12-12 01:29 | Install        |    8
     9 | update                                         | 2021-12-12 00:54 | Upgrade        |    1 EE
     8 | install gitlab-runner                          | 2021-12-09 22:12 | Install        |    7 EE
     7 | update                                         | 2021-12-09 22:09 | Upgrade        |    2
     6 | install mysql                                  | 2021-12-05 22:46 | Install        |    3
     5 | install docker-ce docker-ce-cli containerd.io  | 2021-12-05 18:47 | E, I, O        |    9
     4 | -y remove podman                               | 2021-12-05 18:41 | Removed        |    4
     3 | install -y yum-utils                           | 2021-12-05 18:37 | Install        |    1
     2 | update                                         | 2021-12-05 01:52 | I, U           |   57
     1 |                                                | 2021-12-05 01:21 | Install        | 1371 EE

undoのundoも実行できる。

間違って、undoを実行した場合、再度undoを実行することもできます。

[root@localhost ~]# yum history undo 15
メタデータの期限切れの最終確認: 0:04:50 時間前の 2022年01月24日 01時40分56秒 に実施しました。
依存関係が解決しました。
=====================================================================================================
 パッケージ         Arch     バージョン                                            Repo        サイズ
=====================================================================================================
インストール:
 nodejs             x86_64   1:10.24.0-1.module+el8.3.0+101+f84c7154               appstream   8.8 M
依存関係のインストール:
 npm                x86_64   1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154     appstream   3.7 M
弱い依存関係のインストール:
 nodejs-full-i18n   x86_64   1:10.24.0-1.module+el8.3.0+101+f84c7154               appstream   7.3 M

トランザクションの概要
=====================================================================================================
インストール  3 パッケージ

ダウンロードサイズの合計: 20 M
インストール後のサイズ: 71 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/3): npm-6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64.rp 2.4 MB/s | 3.7 MB     00:01
(2/3): nodejs-full-i18n-10.24.0-1.module+el8.3.0+101+f84c7154.x86_64 3.4 MB/s | 7.3 MB     00:02
(3/3): nodejs-10.24.0-1.module+el8.3.0+101+f84c7154.x86_64.rpm       1.4 MB/s | 8.8 MB     00:06
-----------------------------------------------------------------------------------------------------
合計                                                                 3.0 MB/s |  20 MB     00:06
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  scriptletの実行中: npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64                1/1
  準備             :                                                                             1/1
  インストール中   : nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             1/3
  インストール中   : npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64                2/3
  インストール中   : nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64                       3/3
  scriptletの実行中: nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64                       3/3
  検証             : nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64                       1/3
  検証             : nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             2/3
  検証             : npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64                3/3

インストール済み:
  nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64
  nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64
  npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64

完了しました!

[root@localhost ~]# yum history
ID     | コマンドライン                                 | 日時             | 動作           | 変更さ
-----------------------------------------------------------------------------------------------------
    16 | history undo 15                                | 2022-01-24 01:45 | Install        |    3
    15 | history undo 14                                | 2022-01-24 01:41 | Removed        |    3
    14 | install nodejs                                 | 2022-01-24 01:38 | Install        |    3
    13 | install java-1.8.0-openjdk-devel               | 2021-12-12 23:22 | Install        |    3
    12 | install 389-ds-base 389-ds-base-devel          | 2021-12-12 20:34 | Install        |   28
    11 | install java-11-openjdk java-11-openjdk-devel  | 2021-12-12 03:25 | Install        |    9
    10 | install nginx                                  | 2021-12-12 01:29 | Install        |    8
     9 | update                                         | 2021-12-12 00:54 | Upgrade        |    1 EE
     8 | install gitlab-runner                          | 2021-12-09 22:12 | Install        |    7 EE
     7 | update                                         | 2021-12-09 22:09 | Upgrade        |    2
     6 | install mysql                                  | 2021-12-05 22:46 | Install        |    3
     5 | install docker-ce docker-ce-cli containerd.io  | 2021-12-05 18:47 | E, I, O        |    9
     4 | -y remove podman                               | 2021-12-05 18:41 | Removed        |    4
     3 | install -y yum-utils                           | 2021-12-05 18:37 | Install        |    1
     2 | update                                         | 2021-12-05 01:52 | I, U           |   57
     1 |                                                | 2021-12-05 01:21 | Install        | 1371 EE
[root@localhost ~]#

undoのundoのundoも可能です。

再実行としてredoも使える

特定トランザクションを再度実行したい場合はredoを使うこともできます。

[root@localhost ~]# yum history redo 15
メタデータの期限切れの最終確認: 0:01:47 時間前の 2022年01月24日 01時47分46秒 に実施しました。
依存関係が解決しました。
=====================================================================================================
 パッケージ         Arch     バージョン                                           リポジトリー サイズ
=====================================================================================================
削除中:
 nodejs             x86_64   1:10.24.0-1.module+el8.3.0+101+f84c7154              @appstream    30 M
 nodejs-full-i18n   x86_64   1:10.24.0-1.module+el8.3.0+101+f84c7154              @appstream    26 M
依存関係パッケージの削除:
 npm                x86_64   1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154    @appstream    15 M

トランザクションの概要
=====================================================================================================
削除  3 パッケージ

解放された容量: 71 M
これでよろしいですか? [y/N]: y
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
  準備             :                                                                             1/1
  削除             : nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64                       1/3
  削除             : npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64                2/3
  削除             : nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             3/3
  scriptletの実行中: nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             3/3
  検証             : nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64                       1/3
  検証             : nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64             2/3
  検証             : npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64                3/3

削除しました:
  nodejs-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64
  nodejs-full-i18n-1:10.24.0-1.module+el8.3.0+101+f84c7154.x86_64
  npm-1:6.14.11-1.10.24.0.1.module+el8.3.0+101+f84c7154.x86_64

完了しました!

もちろんyum historyにも記載されます。

[root@localhost ~]# yum history
ID     | コマンドライン                                 | 日時             | 動作           | 変更さ
-----------------------------------------------------------------------------------------------------
    17 | history redo 15                                | 2022-01-24 01:49 | Removed        |    3
    16 | history undo 15                                | 2022-01-24 01:45 | Install        |    3
    15 | history undo 14                                | 2022-01-24 01:41 | Removed        |    3
    14 | install nodejs                                 | 2022-01-24 01:38 | Install        |    3
    13 | install java-1.8.0-openjdk-devel               | 2021-12-12 23:22 | Install        |    3
    12 | install 389-ds-base 389-ds-base-devel          | 2021-12-12 20:34 | Install        |   28
    11 | install java-11-openjdk java-11-openjdk-devel  | 2021-12-12 03:25 | Install        |    9
    10 | install nginx                                  | 2021-12-12 01:29 | Install        |    8
     9 | update                                         | 2021-12-12 00:54 | Upgrade        |    1 EE
     8 | install gitlab-runner                          | 2021-12-09 22:12 | Install        |    7 EE
     7 | update                                         | 2021-12-09 22:09 | Upgrade        |    2
     6 | install mysql                                  | 2021-12-05 22:46 | Install        |    3
     5 | install docker-ce docker-ce-cli containerd.io  | 2021-12-05 18:47 | E, I, O        |    9
     4 | -y remove podman                               | 2021-12-05 18:41 | Removed        |    4
     3 | install -y yum-utils                           | 2021-12-05 18:37 | Install        |    1
     2 | update                                         | 2021-12-05 01:52 | I, U           |   57
     1 |                                                | 2021-12-05 01:21 | Install        | 1371 EE

注意点

undo・redoともに、トランザクション中に実行された手順を戻すだけになる。

undo・redoは実際にyum historyで実施したコマンドベースでトランザクション実施手順をもとに戻す(redoの場合は繰り返す)のみになります。

たとえば、yumで特定のパッケージをインストール後、yum updateやdowngradeを行い、パッケージインストールしたトランザクションIDのundoの実行ができなくなります。

## java-1.8.0-openjdk-develをダウングレード
[root@localhost ~]# yum downgrade java-1.8.0-openjdk-devel
依存関係が解決しました。
=====================================================================================================
 パッケージ                        Arch         バージョン                     リポジトリー    サイズ
=====================================================================================================
ダウングレード:
 java-1.8.0-openjdk                x86_64       1:1.8.0.302.b08-3.el8          appstream       339 k
 java-1.8.0-openjdk-devel          x86_64       1:1.8.0.302.b08-3.el8          appstream       9.8 M
 java-1.8.0-openjdk-headless       x86_64       1:1.8.0.302.b08-3.el8          appstream        34 M

トランザクションの概要
=====================================================================================================
ダウングレード  3 パッケージ

ダウンロードサイズの合計: 44 M
これでよろしいですか? [y/N]: y
・・・
ダウングレード済み:
  java-1.8.0-openjdk-1:1.8.0.302.b08-3.el8.x86_64
  java-1.8.0-openjdk-devel-1:1.8.0.302.b08-3.el8.x86_64
  java-1.8.0-openjdk-headless-1:1.8.0.302.b08-3.el8.x86_64

完了しました!

## トランザクション情報
[root@localhost ~]# yum history
ID     | コマンドライン                                 | 日時             | 動作           | 変更さ
-----------------------------------------------------------------------------------------------------
    18 | downgrade java-1.8.0-openjdk-devel             | 2022-01-24 01:56 | Downgrade      |    3
    17 | history redo 15                                | 2022-01-24 01:49 | Removed        |    3
    16 | history undo 15                                | 2022-01-24 01:45 | Install        |    3
    15 | history undo 14                                | 2022-01-24 01:41 | Removed        |    3
    14 | install nodejs                                 | 2022-01-24 01:38 | Install        |    3
    13 | install java-1.8.0-openjdk-devel               | 2021-12-12 23:22 | Install        |    3
    12 | install 389-ds-base 389-ds-base-devel          | 2021-12-12 20:34 | Install        |   28
    11 | install java-11-openjdk java-11-openjdk-devel  | 2021-12-12 03:25 | Install        |    9
    10 | install nginx                                  | 2021-12-12 01:29 | Install        |    8
     9 | update                                         | 2021-12-12 00:54 | Upgrade        |    1 EE
     8 | install gitlab-runner                          | 2021-12-09 22:12 | Install        |    7 EE
     7 | update                                         | 2021-12-09 22:09 | Upgrade        |    2
     6 | install mysql                                  | 2021-12-05 22:46 | Install        |    3
     5 | install docker-ce docker-ce-cli containerd.io  | 2021-12-05 18:47 | E, I, O        |    9
     4 | -y remove podman                               | 2021-12-05 18:41 | Removed        |    4
     3 | install -y yum-utils                           | 2021-12-05 18:37 | Install        |    1
     2 | update                                         | 2021-12-05 01:52 | I, U           |   57
     1 |                                                | 2021-12-05 01:21 | Install        | 1371 EE

## トランザクション ID13をundo
[root@localhost ~]# yum history undo 13
メタデータの期限切れの最終確認: 0:00:15 時間前の 2022年01月24日 02時01分40秒 に実施しました。
依存関係が解決しました。
行うべきことはありません。
完了しました!
Warning, the following problems occurred while running a transaction:
  アクション "Removed" には、パッケージ nevra "java-1.8.0-openjdk-1:1.8.0.312.b07-2.el8_5.x86_64" イ ンストールされていません。
  アクション "Removed" には、パッケージ nevra "java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64" インストールされていません。
  アクション "Removed" には、パッケージ nevra "java-1.8.0-openjdk-headless-1:1.8.0.312.b07-2.el8_5.x86_64" インストールされていません。

## redoの場合は「java-1.8.0-openjdk-1:1.8.0.302.b08-3.el8.x86_64」をインストールすることになるので使える(Warning出るけど)
[root@localhost ~]# yum history redo 13
メタデータの期限切れの最終確認: 0:02:29 時間前の 2022年01月24日 02時01分40秒 に実施しました。
依存関係が解決しました。
=====================================================================================================
 パッケージ                        Arch         バージョン                     リポジトリー    サイズ
=====================================================================================================
アップグレード:
 java-1.8.0-openjdk                x86_64       1:1.8.0.312.b07-2.el8_5        appstream       340 k
 java-1.8.0-openjdk-devel          x86_64       1:1.8.0.312.b07-2.el8_5        appstream       9.8 M
 java-1.8.0-openjdk-headless       x86_64       1:1.8.0.312.b07-2.el8_5        appstream        34 M

トランザクションの概要
=====================================================================================================
アップグレード  3 パッケージ

ダウンロードサイズの合計: 44 M
これでよろしいですか? [y/N]: y
パッケージのダウンロード:
(1/3): java-1.8.0-openjdk-1.8.0.312.b07-2.el8_5.x86_64.rpm           1.9 MB/s | 340 kB     00:00
(2/3): java-1.8.0-openjdk-devel-1.8.0.312.b07-2.el8_5.x86_64.rpm     4.5 MB/s | 9.8 MB     00:02
(3/3): java-1.8.0-openjdk-headless-1.8.0.312.b07-2.el8_5.x86_64.rpm  6.2 MB/s |  34 MB     00:05
-----------------------------------------------------------------------------------------------------
合計                                                                 7.4 MB/s |  44 MB     00:05
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
・・・

アップグレード済み:
  java-1.8.0-openjdk-1:1.8.0.312.b07-2.el8_5.x86_64
  java-1.8.0-openjdk-devel-1:1.8.0.312.b07-2.el8_5.x86_64
  java-1.8.0-openjdk-headless-1:1.8.0.312.b07-2.el8_5.x86_64

完了しました!
Warning, the following problems occurred while running a transaction:
  パッケージ "java-1.8.0-openjdk.x86_64" は、アクション "Install" 用に既にインストールされています。
  パッケージ "java-1.8.0-openjdk-devel.x86_64" は、アクション "Install" 用に既にインストールされてい ます。
  パッケージ "java-1.8.0-openjdk-headless.x86_64" は、アクション "Install" 用に既にインストールされています。

廃止されたパッケージの場合は取得できない

undo、redoともにリポジトリサイトからファイルをダウンロードするため、パッケージ自体が廃止された場合は再取得できなくなります。

-サーバー, linux
-, , , , ,