rpm を使用せず、rpm と同じ動作で yum を使用してパッケージを 1 つインストールしたいです--replacefiles
。他のパッケージとファイルが競合するパッケージが 1 つあるので、yum を使用して強制的にインストールする必要があります。このパッケージは私のものなので、spec ファイルを変更できます。
答え1
使用できますトリガースクリプトレットこのために。
たとえば、ファイルが/etc/contested
という名前の rpm によって所有されておりgenerally
、specifically
同じファイルを強制的に上書きしようとする別のパッケージ ( ) があるとします。
ではspecifically.spec
、ファイルの新しいバージョンを にインストールし%{_datadir}/%{name}/etc.contested
、このトリガー スクリプトレットを使用してそれを にインストールします/etc
。
%triggerin -- generally install -m 0644 %{_datadir}/%{name}/etc.contested %{_sysconfdir}/contested
スクリプトレットは、generally
がインストールまたは更新されるたび、および がspecifically
インストールまたは更新されるたびに実行されます。
RPM はファイルが期待どおりではないことを認識しますが、インストールやアンインストールが停止されることはありません。
答え2
スペック ファイルを変更できる場合は、ファイル セクションで競合するファイルを削除できる可能性があります。そのセクションでフォルダーを指定しますか? またはファイルごとに指定しますか?