2009-09-16 3 views
2

Вот что я хочу:приложений для создания инсталляторов для Linux, Windows и MacOSX из одной конфигурации

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

  • MSI на Windows,
  • DMG на MacOSX
  • тарболл ж/install.sh (и об/Деб, если это возможно) на 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- линукс-x86.tar.gz.

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

Примечание 1: Foo может быть приложение, написанное на любом языке программирования. Это не имеет значения.

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

ответ

0

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

+0

1) На самом деле я хотел бы иметь приложение * generic * (написанный на Python), который делает это. 2) Что касается установщика Linux, он не обязательно должен быть установщиком GUI; Установщик CLI (как и ActivePython) тоже прекрасен. –

+1

Говоря об установщиках Linux, автоматическое создание репозитория deb, который пользователи могут добавить в свой файл /etc/apt/sources.list, будет более круче, чем я ожидал. –

+1

Так что сделайте это вручную. Ваши специфические требования вряд ли будут точно соответствовать коммерческому приложению. –

0

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

3

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