私はrpm-upgradeコマンドで遊んでいますが、rpmには変更された構成ファイルを処理するさまざまな方法があるため、アップグレード中に失われることはありません。私の理解では、構成ファイルが変更され、パッケージがrpm -Uでアップグレードされた場合、rpmは元のプロパティファイルの名前を{file} .rpmsaveに変更し、元のファイル名{file}で新しい構成ファイルをインストールします。
ただし、作成したパッケージでrpm -Uを実行しようとすると、実際に表示されるのは、元の構成ファイルが削除され、新しい構成ファイルの名前が{file} .rpmsaveに変更されることです。これは意図された動作ですか?インストールスクリプトでは、構成ファイルの一部のテキストも「sed」で変更します。これは、アップグレード中にrpmが構成ファイルを処理する方法を妨害した可能性がありますか?
これは意図された動作です。構成ファイルが上書きされないようにする(および.rpmsaveに移動する)場合は、rpm .specファイルで_%config
_の代わりに%config(noreplace)
を使用すると、ファイルは置き換えられません。代わりに、rpmパッケージからの新しいファイルは.rpmnewとして作成され、そこにあるファイルはそのままになります。