4

rpmを使用して、異なる環境(live、testing、developer)のサブパッケージをビルドしたいのですが、同じファイルの場合、name-config-liveというパッケージ、name-config-testingというパッケージ、name-configというパッケージがあります。 -開発者とその中のパスは同じですが、それぞれに名前が付けられた環境に対応する構成があります。例として

すべての環境で/etc/name.confというファイルがあり、テストでは「1」、開発では「2」、ライブでは「3」を含める必要があるとします。サブパッケージの生成は、入力した順序ではなく最後にのみ行われるため、同じ仕様でこれを行うことは可能ですか?(そしてうまくいけば%post -nではありません)

BuildRootを使用してみましたが、これはグローバル属性のようです

4

1 に答える 1

3

ネイティブな方法はないと思います。私は%postあなたが指摘したようにします。

ただし、私はこれを行います(仕事用に開発した内部専用パッケージで行うことと同様です):

  1. /etc/name.conf-developer/etc/name.conf-liveなどの3 つの別個のファイル。
  2. 3 つのパッケージすべてが仮想パッケージを提供するようにします。name-config
  3. メインパッケージにrequiredを持たせるname-config
    • これによりrpm、、、yumまたは少なくとも 1 つが同じトランザクションにインストールされる必要があるものが作成されます。
  4. 3 つのパッケージすべてが互いに競合するようにする
  5. 各構成パッケージ%post(および場合によっては)の適切な構成への %verifyシンボリック リンクを設定します。/etc/name.conf
    • これは、何が起こっているかをユーザーに示すのにも役立ちます

短所:

  1. それは少しハックです
  2. rpm --whatprovides /etc/name.confどのパッケージにも所有されていないと言うでしょう
于 2012-10-03T00:38:45.490 に答える