%config(noreplace)
他のRPMによってインストールされたファイルを変更するRPMを生成する正しい方法は何ですか?
一般的な問題の具体的な例:定義が内部イメージをalmalinux-repos
指すようにインストールされているリポジトリ定義を変更しようとしています。baseurl
リポジトリ定義%config(noreplace)
はにあるので、almalinux-repos
さまざまな方法で変更できます。しかし、我々は修正もパッケージにしたいと思います。
1つのアイデアは新しいパッケージを作成することですObsoletes: almalinux-repos
。これはalmalinux-repos
asを使用し、BuildRequires
そのファイルをビルドルートに含めることを提案します。Obsoletes
簡単に怪我をする可能性があるため、この方法は使用しないことをお勧めします。
別のアイデアは、新しいパッケージを作成し、Requires: almalinux-repos
それを使用して%patch
ファイルを変更することです。
2番目の質問:このメカニズムを使用すると仮定すると、パッケージの検証に自動的に含まれるように新しいパッケージに%patch
追加する必要がありますか?Supplements: almalinux-repos
答え1
almalinux-repos
2番目のアプローチでは、ローカルパッケージがインストールされるまでパッケージのファイルを変更できないという問題があります。修正があると%patch
正しく適用されない危険があります。
私のアプローチは、RPMファイルを使用するのではなく、Ansibleを使用して関心のある設定ファイルに正しい設定があることを確認することです。他の多くの可能性があります。このアプローチは、実際のソリューションではなく独自のソリューションに近いです。