本番環境のセキュリティ対策でパッケージの更新をすることがある。このときもし、問題が起きてパッケージを元に戻したいとしたときにどのようにすればいいか調べた。
例えば
$ sudo yum install screen
yumを使ってパッケージをインストールするとその実行履歴が記録される。
$ sudo yum history
読み込んだプラグイン:fastestmirror
ID     | ログイン ユーザー        | 日時             | 操作           | 変更
-------------------------------------------------------------------------------
     4 |  <vagrant>               | 2015-11-09 00:26 | Install        |    1
     3 | root <root>              | 2015-05-21 23:06 | Install        |   96
     2 | root <root>              | 2015-05-21 23:02 | I, U           |   39
     1 | システム <未設定>        | 2015-05-21 22:48 | Install        |  296
history list
実行履歴はyum historyで確認できる。
インストールを元に戻すには
$ sudo yum history undo 4
読み込んだプラグイン:fastestmirror
Undoing transaction 4, from Mon Nov  9 00:26:17 2015
    インストール screen-4.1.0-0.19.20120314git3c2946.el7.x86_64 @base
依存性の解決をしています
--> トランザクションの確認を実行しています。
---> パッケージ screen.x86_64 0:4.1.0-0.19.20120314git3c2946.el7 を 削除
--> 依存性解決を終了しました。
依存性を解決しました
========================================================================================================================
 Package               アーキテクチャー      バージョン                                      リポジトリー          容量
========================================================================================================================
削除中:
 screen                x86_64                4.1.0-0.19.20120314git3c2946.el7                @base                914 k
トランザクションの要約
========================================================================================================================
削除  1 パッケージ
インストール容量: 914 k
上記の処理を行います。よろしいでしょうか? [y/N]
yum history undoに履歴IDを指定して実行すると、指定したIDの履歴の逆を行う。
なお、この実行履歴も記録される。
$ sudo yum history
読み込んだプラグイン:fastestmirror
ID     | ログイン ユーザー        | 日時             | 操作           | 変更
-------------------------------------------------------------------------------
     5 |  <vagrant>               | 2015-11-09 00:26 | Erase          |    1
     4 |  <vagrant>               | 2015-11-09 00:26 | Install        |    1
     3 | root <root>              | 2015-05-21 23:06 | Install        |   96
     2 | root <root>              | 2015-05-21 23:02 | I, U           |   39
     1 | システム <未設定>        | 2015-05-21 22:48 | Install        |  296
history list