本番環境のセキュリティ対策でパッケージの更新をすることがある。このときもし、問題が起きてパッケージを元に戻したいとしたときにどのようにすればいいか調べた。
例えば
$ 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