64
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Redhat系Linuxで、OSパッケージを戻す方法

Last updated at Posted at 2016-09-12

ウェブアプリ周辺のバージョンは、下記のように戻せるので、安心感があります。

  • ウェブアプリは、gitのtagと、Capistranoを組合せることにより、いつでも特定のバージョンに戻せます。
  • サーバー設定は、gitのtagと、AnsibleやChefの組合せで、いつでも特定のバージョンに戻せます。
  • RDBMSは、デイリーバックアップや、PITリカバリで、ある範囲に戻すことができます。

OSパッケージは、どうやって戻すのか。Redhat系Linuxで調べました。

yumでインストール可能なバージョンを調べたい

yum --showduplicate list <packagename>
  • 複数指定、アスタリスク指定などが可能
  • インストール可能な全バージョンが表示される
  • 色の意味は下記。(ターミナルのカラースキームによって違うかも...
    • 黒;過去入れたことのないバージョン
    • 水;過去入れたことのあるバージョン
    • 緑&太字;いま入ってるバージョン
    • 青&太字;アップデート可能な新バージョン
  • AmazonLinuxは、バージョン「YYYY/MM」の範囲で表示される
    • 2016/03なら、その範囲でのバージョンが表示される
  • 他のリポジトリは、そのリポジトリの方針に従って表示される
    • nginx, remi, datadog, などなど

yumで特定のバージョンに戻したい

showduplicate list の情報を元に、パッケージ名とバージョン名を特定して、downgradeで戻せます。

yum downgrade <packagename>-<version>

yumで直前のバージョンに戻したい

バージョン番号を省略可能

yum downgrade <packagename>

yumコマンドによる変更履歴を調べたい

直近20回の履歴

[root@web01 ec2-user]# yum history list
Loaded plugins: priorities, upgrade-helper
ID     | Login user               | Date and time    | Action(s)      | Altered
-------------------------------------------------------------------------------
   104 | EC2 ... <ec2-user>       | 2016-08-31 17:40 | Install        |   12
   103 | EC2 ... <ec2-user>       | 2016-08-25 11:10 | Install        |    1
   102 | EC2 ... <ec2-user>       | 2016-07-28 12:07 | Update         |    1 EE
   101 | EC2 ... <ec2-user>       | 2016-07-12 14:35 | Install        |    8
   100 | EC2 ... <ec2-user>       | 2016-07-12 14:34 | Update         |    1 EE
    99 | EC2 ... <ec2-user>       | 2016-05-10 12:48 | Update         |    3
    98 | EC2 ... <ec2-user>       | 2016-05-10 12:40 | Update         |    2
    97 | EC2 ... <ec2-user>       | 2016-05-10 12:40 | Update         |    1
    96 | System <unset>           | 2016-05-10 12:31 | Install        |    1
    95 | System <unset>           | 2016-05-10 12:31 | Erase          |    1
    94 | EC2 ... <ec2-user>       | 2016-05-10 12:15 | I, U           |    7 EE
    93 | EC2 ... <ec2-user>       | 2016-03-18 13:14 | E, I, U        |   12 EE
    92 | EC2 ... <ec2-user>       | 2016-03-13 11:11 | Update         |   15
    91 | EC2 ... <ec2-user>       | 2016-03-13 11:10 | Update         |    2
    90 | EC2 ... <ec2-user>       | 2016-03-10 14:44 | Install        |    1
    89 | EC2 ... <ec2-user>       | 2016-03-10 14:43 | Update         |    4 E<
    88 | EC2 ... <ec2-user>       | 2016-03-09 18:46 | Update         |    4 >E
    87 | EC2 ... <ec2-user>       | 2016-03-01 21:58 | Install        |    1
    86 | EC2 ... <ec2-user>       | 2016-03-01 21:57 | Update         |    4 EE
    85 | EC2 ... <ec2-user>       | 2016-02-23 10:29 | Update         |    3
history list

全履歴

yum history list all

yumコマンドの履歴IDごとの作業内容を調べる

yum history listで左端のIDで、作業内容を調べることができます。

履歴ID「96」の内容を調べるなら

[root@web01 ec2-user]# yum history info 96
Loaded plugins: priorities, upgrade-helper
Transaction ID : 96
Begin time     : Tue May 10 12:31:56 2016
Begin rpmdb    : 620:b2548581121a92f05d2abb13a36606703d422fb6
End time       :            12:31:57 2016 (1 seconds)
End rpmdb      : 621:151e4d1786935d2faf91e0a13ccef4836a4ee9d9
User           : System <unset>
Return-Code    : Success
Command Line   : -d0 -e0 -y --disablerepo=* localinstall /var/lib/aws/opsworks/cache.stage2/opsworks_assets/opsworks-ruby22.PVoU39yu/opsworks-ruby22-2.2.5-1.x86_64.rpm
Transaction performed with:
    Installed     rpm-4.11.2-2.73.amzn1.x86_64  @amzn-updates/2015.09
    Installed     yum-3.4.3-137.65.amzn1.noarch @amzn-updates/2015.09
Packages Altered:
    Install opsworks-ruby22-2.2.5.1-1.x86_64 @/opsworks-ruby22-2.2.5-1.x86_64/2015.09
history info

yum install, yum updateなどの作業を取り消したい

履歴ID「96」を取り消すなら。

yum history undo 96
  • yum installなどと同様に、y/nを聞かれるので、答えて進める。
  • この作業もyum historyに記録されるので、undoのundoはもちろん、undoのundoのundoも可能。

まとまった範囲の作業を取り消したい

履歴ID 116 ~ 156 を取り消すなら

seq 116 156 \
| sort -r \
| while read F; do
  yum -y history undo $F
done
  • yum -y としていることで、y/nを聞かれることなく一気に進める
  • sort -r することで、履歴の新しいほうから古いほうに向けて取り消していく
64
60
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
64
60

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?