Linuxでアップデート後にrpmnew、rpmsaveファイルが生成されたときの対処方法

Linuxでアップデート後にrpmnew、rpmsaveファイルが生成されたときの対処方法

Linuxでパッケージをアップデートしたときに「.rpmnew」ファイルや「.rpmsave」ファイルが生成されることがあります。

これらのファイルは、パッケージの設定ファイルがアップデートされたときに生成され、既存の設定ファイルが意図せずに上書きされることを防いでくれています。

そのため、これらのファイルが生成できたときは、既存の設定ファイルと新しい設定ファイルの差異を確認し、適切に統合する必要があります。

そこでここでは、パッケージアップデート時にrpmnew、rpmsaveファイルが生成されていないか確認する方法や、生成されていた場合にファイルを統合する方法を紹介します。

この記事は、以下の環境での動作結果を基にしています。他のディストリビューションやバージョンでは、動作結果が異なる場合があることをご了承ください。

ソフトウェアバージョン
CentOS Linux7.4.1708

rpmnew、rpmsaveファイルとは

パッケージのアップデートで既存の設定ファイルが更新される場合、既存の設定ファイルを上書きしないよう処理された場合は、新しい設定ファイルのファイル名末尾に「.rpmnew」が付加され、既存存の設定ファイルを置き換えられたときは、既存の設定ファイルのファイル名末尾に「.rpmsave」が付加されます。

ファイルが生成されていないかチェックする

パッケージをアップデートしたときに、rpmnewファイルやrpmsaveファイルが生成されていないかチェックするときは、以下のコマンドで確認できます。

# find / -print | egrep "rpmnew$|rpmsave$"

設定ファイルの内容を統合する

rpmnewもしくはrpmsaveファイルが生成されている場合は、既存の設定ファイルと新しい設定ファイルの差分を確認して、アップデートにより変更のあった箇所を修正もしくは追加・削除して、一つのファイルに統合します。

たとえば「httpd.conf」ファイルに更新があった場合は、以下のようにコマンドを実行して差分を確認できます。

# diff httpd.conf httpd.conf.rpmnew

diffコマンドで差分を確認したら、後は手作業で一つのファイルに統合します。

あとがき

これらのファイルは、いつの間にかできていることがよくあります。パッケージアップデート時は気にするようにしないとだめですね。