1分でわかる.rpmnewの扱い方
具体的事例
yumコマンドでyumコマンドをupdateしてみました。$ sudo yum update yum
[中略]
======================================================================
Package Arch Version Repository Size
======================================================================
Updating:
yum noarch 3.2.22-39.el5.centos base 1.0 M
Transaction Summary
======================================================================
Install 0 Package(s)
Upgrade 1 Package(s)
Total download size: 1.0 M
Is this ok [y/N]: y
[中略]
Updating : yum
1/2
warning: /etc/yum.conf created as /etc/yum.conf.rpmnew
Cleanup : yum
2/2
Updated:
yum.noarch 0:3.2.22-39.el5.centos
Complete!
warningに注目してください。yum.conf.rpmnewが「新バージョンにおけるデフォルト設定」が書かれたファイルで、まだ適用されてない状態です。
もしあなたが既存のyum.confを一切いじってないのなら、既存のyum.confを削除して新しいyum.conf.rpmnewで置き換えても、(たいていの場合は)大丈夫でしょう。
しかしもしあなたが既存のyum.confをいじっていた場合、そのように強引に適用してしまうと、あなたが書いた独自設定が失われてしまいます。
あなた書いた設定を温存して、新デフォルト設定の適用を保留にしておくこと、これが.rpmnewファイルの存在意義です。
.rpmnewファイルの扱い方
パッチを適用する感じです。- 既存ファイルとの差分を見る
- 差分の意味をひとつづつ確認する
- 差分の中から、必要に応じて一部または全部を適用する。
$ cd /etc
$ diff -u yum.conf yum.conf.rpmnew
--- yum.conf 2010-01-26 11:25:06.000000000 +0900
+++ yum.conf.rpmnew 2012-02-23 09:52:41.000000000 +0900
@@ -9,7 +9,7 @@
obsoletes=1
gpgcheck=1
plugins=1
-exclude=kernel.*
+bugtracker_url=http://bugs.centos.org/yum5bug
# Note: yum-RHN-plugin doesn't honor this.
metadata_expire=1h
1行削除されて、1行追加されてますね。ここで、新規設定をまるっと適用したいなら、新ファイルで旧ファイルを置き換えます。
$ sudo cp /etc/yum.conf /etc/yum.conf.old # バックアップ
$ sudo rm /etc/yum.conf
$ sudo mv /etc/yum.conf.rpmnew /etc/yum.conf
今回のケースでは"exclude=kernel.*"が消されてしまうのが気持ち悪いので、この1行は残しておきたいとします。その場合は手動でファイルを編集します。
$ sudo cp /etc/yum.conf /etc/yum.conf.old # バックアップ
$ sudo nano /etc/yum.conf
下記1行を追記
bugtracker_url=http://bugs.centos.org/yum5bug
.rpmnewはもう用済みなので削除
$ sudo rm /etc/yum.conf.rpmnew
だいたいこんな流れです。yum updateで全パッケージを一括アップデートした場合、.rpmnewが何個か作られるかもしれませんが、考え方は同じです。
放置せずに、差分を確認して適用してあげましょう。