複数のファイルを含むカスタムパッケージをインストールしました。
2回目の実行でrpm --upgrade
エラーがたくさん発生しました。
File ABC from install of mypackage-1.0-0.i386 conflicts with file from package mypackage-1.0-0.i386
RPMはエラーコード5で終了します。
しかし、同じバージョン番号を持つ同じパッケージです! 「既にインストール済み」とマークしてはいけませんか?この問題を回避するには、specファイルまたはrpmアップグレードコマンドで何をすべきですか?
実行すると、rpm --upgrade --replacefiles
「パッケージmypackage-1.0-0.i386終了コードが5の「インストール済み」
(ファイルが変更されていない場合は、ファイルを交換したくありません...
ベストアンサー1
いくつかのオプションがあります。最も簡単な方法は、rpm -U
(アップグレード)コマンドが正しく機能するように新しいパッケージをビルドするときにバージョンおよび/またはリリースを増やすことです。これを望まない場合は、をrpm -U --replacefiles --replacepkgs
使用してパッケージを効果的に再インストールできます。 3番目のオプションは、インストールする前に「新しい」パッケージを削除することです。
これらすべての場合、通常のペイロードの一部である(つまり、noreplace
構成ファイルとして表示されていない)すべてのファイルは最新バージョンに置き換えられます。これがRPMがどのように機能するかです。変更のみを更新するには、以前のバージョンとの違いのみを含むDRPMパッケージ(Delta RPM)の作成を検討する必要があります。これを行うには、再構築時にバージョンおよび/またはバージョン番号を増やす必要があります。私は増分RPMパッケージを作成したことがないので、これについてアドバイスすることはできません。