1分でわかる.rpmnewの扱い方

.rpmnewファイルとは何か?

3行で説明します。

  • yum updateをすると、.rpmnew ファイルが作成されることがある。放置しててもシステムは稼働するが、放置しない方がよい。
  • .rpmnewファイルは、「新バージョンにおけるデフォルト設定ファイル」である。
  • .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が何個か作られるかもしれませんが、考え方は同じです。
放置せずに、差分を確認して適用してあげましょう。
カテゴリ:

人気記事