0

3 つの異なるタイプのシステムで使用する一連のスクリプトをアンパックする RPM を作成しました。rpm にパッケージ化されたファイルのサブセットのみを必要とする 4 番目のシステム タイプを追加しようとしています。簡単なチェックに基づいて、一部のペイロードのみを %install セクションにインストールする方法はありますか。何かのようなもの

(sudo コード)

if systemtype eq "type4"; then
    install %file4
else
    install %file
fi

4 つのシステムはすべて同じ OS を実行しており、単一の RPM を使用すると、RPM を他の人が使用できるようにするのがはるかに簡単になります。

%post セクションでこれを実行できることはわかっていますが、削除する必要があるファイルのリストが非常に長いため、できればこれを避けたいと考えています。

4

2 に答える 2

1

単一の RPM でこのタスクを完了することは、あまり良い計画ではありません。マークが言ったように、他の場所と同じようにシェルスクリプトを書くことができますが、あなたの質問に基づいて、これは不合理に思えます. あなたの質問では、この RPM は 1 台のマシンに搭載されると説明しましたが、その特定のシステム用に RPM をパッケージ化してみませんか? これにより、他のユーザーが RPM を維持する必要がある場合に RPM の複雑さが軽減され、RPM の肥大化も軽減されます。短期的には単一の RPM の方が簡単かもしれませんが、長期的には複数の RPM の方が優れたソリューションになるでしょう。

于 2013-03-02T04:52:24.893 に答える
0

スペック ファイルに一度に複数の RPM ファイルを出力させることができます。これは「サブパッケージング」と呼ばれます。

さまざまなマシンに与えられた依存関係に一致するようにそれらを調整すると、最終的に、適合するようにインストールできる特定の数のパッケージになる可能性があります。

于 2013-03-02T09:02:16.777 に答える