私は RPM にはかなり慣れていませんが、それで遊んでいて、少し左翼手で何かをする必要があります。
各環境で同じ rpm パッケージを使用する必要があるという規則に従わなければなりません。%pre と %post を使用してファイルを変更することはできません。
問題は、インストールが make を実行していないことです。実際、テキスト ファイルと xml ファイルのファイル構造をコピーしています。ただし、これらのファイルには環境固有のコードが含まれていますが、残念ながらガイドラインに従う必要があります。
私が考えた「解決策」は、複数のソース ファイルを使用することです。source0 は開発用、source1 はテスト用、source2 は運用用であり、source3 は災害復旧用です。各ソースは、環境名を持つフォルダーに抽出されます (これは望ましいことです!)
$deploy_folder/dev_code
$deploy_folder/test_code
$deploy_folder/prd_code
環境を示す環境変数が与えられます。
これまでのところ、すべてのソースをデプロイしてから、条件を使用して不要なフォルダーを削除しました
if [[ $env_variable == "PRD" ]] ; それから
rm -rf $buildroot/install/$deploy_folder/dev_code
rm -rf $buildroot/install/$deploy_folder/test_code
フィ
*上記の変数をいくらか単純化しました
これはビルド時に機能するように見えますが、rpm -i を実行すると、すべてのコードがデプロイされず、最終的な宛先で他のフォルダーが削除されます。
明らかに、私はおそらく正しい精神で RPM を使用していないので、正しい方法でこれを行っていますか? 私のファイルが基本的にすべて環境固有であることを考えると、より良い方法はありますか?
最終的な宛先にデプロイされるコードにアクセスするにはどうすればよいですか?
ありがとう