Я новичок в RPM, но я играл с ним, и мне нужно сделать что-то немного нестандартное.
Я должен соблюдать правила, которые гласят, что я должен использовать один и тот же пакет rpm в каждой среде, я не могу использовать %pre и %post для изменения файлов.
Проблема в том, что моя установка не делает make, фактически я копирую файловую структуру текстовых файлов и файлов xml. Однако эти файлы содержат код, специфичный для среды, но, к сожалению, я должен следовать рекомендациям.
«Решение», которое я рассматривал, состоит в том, чтобы использовать несколько исходных файлов, source0 — это dev, source1 — test и source2 — production, а source3 — аварийное восстановление. Каждый источник извлекается в папку с именем среды (это желательно!)
$deploy_folder/dev_code
$deploy_folder/test_code
$deploy_folder/prd_code
Мне будет предоставлена переменная среды, которая сообщает мне среду.
До сих пор я развернул все исходники, а затем удалил ненужные папки, используя условие
если [[ $env_variable == "PRD" ]] ; потом
rm -rf $buildroot/install/$deploy_folder/dev_code
rm -rf $buildroot/install/$deploy_folder/test_code
fi
* я несколько упростил приведенные выше переменные
Кажется, это работает во время сборки, однако, когда я выполняю команду rpm -i, он не развертывает весь код, а затем удаляет другие папки в конечном месте назначения.
Ясно, что я, вероятно, не использую RPM в правильном духе, так что я делаю это правильно? есть ли лучший способ, учитывая, что мои файлы по существу зависят от среды?
Как получить доступ к тому, какой код развернут в конечном пункте назначения?
Спасибо