Приложение для генерации установщиков для Linux, Windows и MacOSX из единой конфигурации - PullRequest
2 голосов
/ 16 сентября 2009

Вот что я хочу:

Учитывая набор определений (предпочтительно на Python), какие файлы устанавливать, где и какой сценарий после установки запустить и т. Д. Я хотел бы, чтобы эта программа генерировала установщики для трех основных платформ:

  • MSI в Windows
  • dmg на MacOSX
  • Tarball w / install.sh (и rpm / deb, если возможно) в Linux

Например,

installconfig.py:

name = 'Foo'
version = '1.0'

components = {
    'core': {'recursive-include': 'image/'
              'target_dir': '$APPDIR'}
    'plugins': {'recursive-include': 'contrib/plugins',
                 'target_dir': '$APPDIR/plugins'}
}

def post_install():
    ...

Я хочу, чтобы эта программа генерировала Foo-1.0.x86.msi, Foo-1.0.universal.dmg и Foo-1.0-linux-x86.tar.gz.

Вы поняли идею. Существует ли такая программа? (Это может под капотом использовать WiX на Windows).

ПРИМЕЧАНИЕ 1 : Foo может быть приложением, написанным на любом языке программирования. Это не должно иметь значения.

ПРИМЕЧАНИЕ 2 : Должны быть возможны вещи для конкретной платформы. Например, я должен иметь возможность указать модули слияния в Windows.

Ответы [ 3 ]

3 голосов
/ 16 сентября 2009

Просмотр CPack . Он очень хорошо работает с CMake, если вы используете его для своей системы сборки, но он также работает и без него. При этом используется синтаксис типа CMake, а не Python, но он может генерировать установщики NSIS, ZIP-архивы, двоичные исполняемые файлы для Linux, RPM, DEB и Mac OS X

0 голосов
/ 16 сентября 2009

возможно асфальтоукладчик можно сделать для удовлетворения ваших потребностей? вам нужно будет добавить части msi, dmg, tgz и т. д. в качестве задач с использованием некоторой внешней библиотеки, но я верю, что это можно сделать.

0 голосов
/ 16 сентября 2009

Ваши требования, вероятно, таковы, что заказ сценария make для выполнения этих задач является обычным делом. Или напишите это на python, если вам не нравится make. Это будет более гибким и, вероятно, быстрее, чем пытаться выучить какой-то проприетарный язык сценариев у создателя инсталлятора. Что-нибудь с причудливым графическим интерфейсом, флажками и т. Д. Вряд ли сможет автоматически сделать что-то рациональное в Linux.

...