Создайте пакет RPM из ANT script под Windows

Мне нужно создать пакет RPM из ANT script, который запускается на компьютере под управлением Windows. Этот пакет должен содержать классы результатов из сборки плюс некоторые другие дополнительные ресурсы.

Я предполагаю, что для создания этого пакета должна быть какая-то программа, которая может быть вызвана из командной строки.

Причина, по которой я хочу сделать это под окнами, состоит в том, что у нас есть script, который создает установщики для нескольких разных платформ, и все уже настроено для окон, поэтому я хочу избежать боли переноса всего на Linux.

Вы знаете, как это можно достичь?

EDIT: Для этого я использовал отдельную машину Linux. Я копирую все файлы с помощью задачи scp, а затем выполняю команду rpm удаленно, используя задачу ssh. Если эта задача вернет код успеха, я скопирую полученный rpm обратно с помощью scp.

Ответы

Ответ 1

Я не знаю каких-либо пакетов для этого, но это может быть просто мое невежество.

Два предложения:

Настройте Linux-машину (отдельный ПК или виртуальную машину) и установите rpm удаленно через скрипты (см. ssh/scp/samba). Это ставит меня как безопасный подход, который позволяет избежать полной миграции среды сборки.

Более предприимчивый подход состоял бы в том, чтобы написать собственные RPM файлы с помощью Java. Формат файла RPM кажется заголовком, за которым следует один из нескольких стандартных форматов архива. Необходим некоторый анализ содержимого архива, поэтому этот подход может быть довольно трудоемким в краткосрочной перспективе (хотя это, вероятно, приведет к более быстрым сборкам).

Ответ 3

Возможным решением является использование чистого инструмента java RPM Manipulation, например, описанного в:

http://jrpm.sourceforge.net/rpmspec/index.html

Ответ 4

Проверка руководства Ant, я нашел следующую дополнительную задачу:

http://ant.apache.org/manual/Tasks/rpm.html

Однако это работает только с компьютерами linux

Ответ 5

Freaking Package Management может это сделать. Вы должны иметь возможность запускать его как с JRuby, так и с MRI Ruby.

fpm -s dir -t rpm mydir - или другое заклинание, в котором вы указываете ключевые слова rpm. См. fpm --help.

Ответ 6

Я не думаю, что это возможно, пакеты времени исполнения, созданные для Linux, не будут работать в Windows (мы не ожидаем, что DLL и exes на linux, мы!). Cygwin сталкивается с подобными проблемами, и они четко заявляют, что делают это, компилируя исходные файлы для окон.