Изпак исполняемого фляги в об / мин

Я пытаюсь создать пакет rpm для исполняемого файла jar, созданного с помощью izpack. В основном это мастер установки, который позволяет пользователю установить инструмент / программное обеспечение. Он предоставляет исполняемый файл. Итак, мы должны сделать

Java -jar file.jar

Для инициализации мастера. Я пытаюсь автоматизировать его в Linux, создавая rpm, который принимает этот jar-файл и sh-файл, который выполняет этот jar-файл и запускает sh-файл, когда я выполняю rpm-файл. Я новичок в rpmbuild, и все онлайн-уроки касаются копирования конкретного jar-файла из rpm-файла в целевое местоположение, а не о том, как его выполнить.

Может кто-нибудь предоставить мне образец спецификации файла, который делает следующее

Создает rpm-файл с.jar и.sh. Когда выполняется rpm -i file.rpm, он запускает.sh-файл, который, в свою очередь, выполняет jar-файл и открывает мастер.

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

Заранее спасибо.

1 ответ

Решение

Я настоятельно рекомендую не делать этого по разным причинам, потому что это полная противоположность тому, что должны делать RPM. Вместо этого вы должны выполнить процесс установки на компьютере сборки (как пользователь без полномочий root!), А затем записать файлы для установки.

Почему ваш подход плохая идея?

  • Сценарий установки скрыт от пользователя (он не может просто запросить скрипт RPM, чтобы увидеть, какие изменения, помимо файлов, вы внесли в его систему)
  • Окончательно установленные файлы не будут контролироваться каким-либо образом, например, вы не сможете проверить, были ли они повреждены (rpm -V) или запросите, какой пакет их установил (rpm -q --whatprovides /path/to/file)
  • "Удаление" или "обновление" пакета фактически ничего не изменит , если вы не напишите подробные сценарии для обработки всех этих неизвестных файлов.
  • Все остальные причины, по которым я не указал, почему вы используете менеджер пакетов вместо того, чтобы слепо распространять дистрибутивы tarball, как мы делали в темные времена

Тем не менее, если вы настаиваете на ломать вещи, ваше решение состоит в том, чтобы положить java установочный звонок в %post, который будет выполняться после того, как файлы были установлены. Он будет вызывать его снова при обновлении пакета, поэтому другой установщик должен это обработать. Но опять же, это не правильный подход.

Другие вопросы по тегам