2012年8月1日水曜日

yumでCentOSのバージョンをダウングレードする(6.3=>6.2)

yum update でOSごとアップデートしてしまった時、元に戻したい時はどうすればいいか試してみました。
検証用に以下のCentOS6.2のVMware用イメージを使わせて頂きました。
http://www.thoughtpolice.co.uk/vmware/#centos6.2
これをyum updateで6.3 にアップデートした状態。ここから6.2に戻してみます。

まずリポジトリの参照先を戻したいバージョンに強制します。
(参考 → http://d.hatena.ne.jp/stakizawa/20100522/t1

# cd /etc/yum.repos.d
# cp CentOS-Base.repo CentOS-Base.repo.orig
# vim CentOS-Base.repo
:%s/$releasever/6.2/g
:wq
# yum clean all

で、yum distribution-synchronization を実行。このコマンドはリポジトリ上の全てのパッケージをまとめてインストールあるいは更新し、バージョンもリポジトリと同じになるように試みます。例えばすでにインストールされているバージョンよりリポジトリ上のバージョンが古い場合はダウングレードを行います。

# yum distribution-synchronization

これですんなり成功してくれればいいですが、エラーが出ました。

Transaction Check Error:
file /usr/lib/python2.6/site-packages/system_config_keyboard/__init__.pyc from install of system-config-keyboard-1.3.1-3.el6.x86_64 conflicts with file from package system-config-keyboard-base-1.3.1-4.el6.x86_64
file /usr/lib/python2.6/site-packages/system_config_keyboard/__init__.pyo from install of system-config-keyboard-1.3.1-3.el6.x86_64 conflicts with file from package system-config-keyboard-base-1.3.1-4.el6.x86_64
file /usr/lib/python2.6/site-packages/system_config_keyboard/keyboard.pyc from install of system-config-keyboard-1.3.1-3.el6.x86_64 conflicts with file from package system-config-keyboard-base-1.3.1-4.el6.x86_64
file /usr/lib/python2.6/site-packages/system_config_keyboard/keyboard.pyo from install of system-config-keyboard-1.3.1-3.el6.x86_64 conflicts with file from package system-config-keyboard-base-1.3.1-4.el6.x86_64
file /usr/lib/python2.6/site-packages/system_config_keyboard/keyboard_models.pyc from install of system-config-keyboard-1.3.1-3.el6.x86_64 conflicts with file from package system-config-keyboard-base-1.3.1-4.el6.x86_64
file /usr/lib/python2.6/site-packages/system_config_keyboard/keyboard_models.pyo from install of system-config-keyboard-1.3.1-3.el6.x86_64 conflicts with file from package system-config-keyboard-base-1.3.1-4.el6.x86_64

エラーの発生したパッケージを削除し、作業後に依存パッケージとともに再インストールすることにします。

# yum remove system-config-keyboard

依存性のため一緒に削除されるパッケージがあるのでメモしておきます(この場合anacondaとfirstbootが一緒に削除された)

再度トライ
# yum distribution-synchronization
今度は成功。

先ほど削除したパッケージをインストールします。
# yum install system-config-keyboard anaconda firstboot

古い情報が残っていて再インストールに失敗しました。rpmコマンドで直接対象のパッケージをアンインストールします。
# rpm -e system-config-keyboard-base-1.3.1-4.el6.x86_64
再度トライ。
yum install system-config-keyboard anaconda firstboot
これでOK。

カーネルの新しいバージョンのパッケージが残っているのでyumコマンド実行時に依存パッケージ欠如で怒られますが、ダウングレードしたバージョンで起動するので特に気にならないのであればこのままでも問題ないでしょう。気になるようなら削除すればいいと思います。

0 件のコメント:

コメントを投稿