yum コマンドでアップデートしたが、「動かない!前のバージョンに戻したい!」
と、なった場合・・・
今回、rspamdを前のバージョンに戻す方法を・・・
(「フルバックアップ(イメージバックアップ)」などを行っていれば安心ですが・・・)
yum の履歴を見てみる。
まずは、慌てず、yumの履歴を見てみましょう。
# yum history list Loaded plugins: fastestmirror Repository google-chrome is listed more than once in the configuration ID | Command line | Date and time | Action(s) | Altered ------------------------------------------------------------------------------- 115 | update rspamd | 2020-xx-xx xx:55 | Update | 1 114 | install rrdtool | 2020-xx-xx xx:32 | Install | 2 113 | install net-snmp net-snm | 2020-xx-xx xx:27 | I, U | 21 (略) history list
↑と、「履歴」が出てきます。
「ID」の列のところ、「115」番が、rspamd 2.5 -> 2.6 へアップデートした履歴です。
# yum history info 115 Loaded plugins: fastestmirror Repository google-chrome is listed more than once in the configuration Transaction ID : 115 Begin time : Tue Nov xx xx:xx:06 2020 Begin rpmdb : 721:fac35f438eccba7deb5a38ce446d75000a4285b4 End time : xx:xx:08 2020 (2 seconds) End rpmdb : 721:956047a79ed8c42a0b6fb1f2b16ac9388f2961a4 User : root <root> Return-Code : Success Command Line : update rspamd Transaction performed with: Installed rpm-4.11.3-43.el7.x86_64 @base Installed yum-3.4.3-163.el7.centos.noarch @base Installed yum-metadata-parser-1.1.4-10.el7.x86_64 @anaconda Installed yum-plugin-fastestmirror-1.1.31-52.el7.noarch @base Packages Altered: Updated rspamd-2.5-156.x86_64 @rspamd Update 2.6-156.x86_64 @rspamd history info
↑「yum history info 番号」というコマンドで、詳しい情報が出てきます。
rspamd 2.5 から、2.6 へアップしたという情報です。
rspamd 2.6 から 2.5 に、戻してみる。
実際に不具合はありませんが、戻してみたいと思います。
# yum history undo 115 Loaded plugins: fastestmirror Repository google-chrome is listed more than once in the configuration Undoing transaction 115, from Tue Nov xx xx:xx:06 2020 Updated rspamd-2.5-156.x86_64 @rspamd Update 2.6-156.x86_64 @rspamd Loading mirror speeds from cached hostfile * base: mirrors.cat.net * epel: ftp.iij.ad.jp * extras: mirrors.cat.net * remi-php73: ftp.riken.jp * remi-safe: ftp.riken.jp * updates: mirrors.cat.net Failed to downgrade: rspamd-2.5-156.x86_64 history undo
↑2.5へ、戻すのに失敗しました。
古い、rspamdは、公開されてないようです・・・
rspamd 2.5 という、ひとつ古いバージョンをダウンロードしてみる
# yum install --downloadonly --downloaddir=/tmp/ rspamd-2.5-156.x86_64 Loaded plugins: fastestmirror (略) No package rspamd-2.5-156.x86_64 available. Error: Nothing to do
↑一つ前のバージョンのダウンロードに失敗しました・・
# yum --showduplicate list rspamd Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile (略) Installed Packages rspamd.x86_64 2.6-156 @rspamd Available Packages rspamd.x86_64 2.6-156 rspamd
↑「rspamd」は、何が登録されているか、チェック。
(この時点では)最新版の、「2.6」しかありません。
rspamdのパッケージをダウンロードしておく
次回のバージョンアップのために、rspamdのパッケージをローカルディスクにダウンロードしておきます。
# yumdownloader rspamd Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile (略) rspamd-2.6-156.x86_64.rpm
# ls -al rspamd-2.6-156.x86_64.rpm -rw-r--r-- 1 root root 6076992 Oct xx xx:xx rspamd-2.6-156.x86_64.rpm
↑次回のバージョンアップの為にローカルにダウンロードしておきます。
rspamd 2.7へ
2021年1月にリリースされた「rspamd 2.7」
# yumdownloader rspamd Loaded plugins: fastestmirror Determining fastest mirrors
↑上記、コマンドで、次回の、「2.8」時のために、rspamdの最新版をダウンロードしておきます。
# ls -l total 5976 -rw-r--r-- 1 root root 6103276 Jan xx xx:xx rspamd-2.7-42.x86_64.rpm
↑ローカルに保存できました。
# yum update rspamd (略) Updated: rspamd.x86_64 0:2.7-42
↑rspamd のアップデートができました。
↑管理画面上でも、2.7となりました。
問題なく稼働しています。
rspamd 前のバージョンに戻してみる。
実験的に、rspamd 2.7から、前のバージョン、2.6 に戻してみます。
# rpm -Uvh --oldpackage rspamd-2.6-156.x86_64.rpm Preparing... ################################# [100%] Updating / installing... 1:rspamd-2.6-156 ################################# [ 50%] Cleaning up / removing... 2:rspamd-2.7-42 ################################# [100%]
↑「rspamd-2.6-156.x86_64.rpm」は、ローカルに保存してあったファイルです。
↑画面上も、2.6に戻りました。
今回、戻しても、正常稼働しているようですが、もしかしたら、うまく動かない場合もあるのかもしれません・・・
例えば、「redis-server」のDBの整合性があわなくなるとか・・・
yum update を戻す場合には、rpmファイルをローカルに
ソースインストールの場合は、前バージョンの、「configure」の履歴を残しておけば、戻すことは容易ですが・・・
rspamdなど、重要なツール(パッケージ)で、yum で管理している場合は、前のバージョンをローカルに保存しておくのがいいのかと思います。
精神的に安心ですね。