用于从单个配置生成Linux,Windows和MacOSX安装程序的应用程序

时间:2009-09-16 01:43:44

标签: python installer cross-platform wix dmg

这就是我想要的:

给出一组定义(最好是在Python中),安装哪些文件以及运行后安装脚本等等。我希望这个程序为三个主要平台生成安装程序:

  • Windows上的MSI
  • dmg on MacOSX
  • 在Linux上使用tarball w / install.sh(以及rpm / deb,如果可能)

例如,

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。

你明白了。这样的程序存在吗? (它可以在幕后使用Windows上的WiX。)

注意1 Foo可以是用任何编程语言编写的应用程序。那应该没关系。

注意2 :应该可以使用特定于平台的内容。例如,我应该能够在Windows上指定merge modules

3 个答案:

答案 0 :(得分:3)

查看CPack。它适用于CMake,如果你将它用于你的构建系统,但它也可以在没有它的情况下工作。这使用CMake类型语法,而不是Python,但它可以生成NSIS安装程序,ZIP存档,Linux,RPM,DEB和Mac OS X包上的二进制可执行文件

答案 1 :(得分:0)

你的要求可能就是手工制作一个make脚本来完成这些事情是一天的顺序。如果你不喜欢make,可以在python中编写。它会比尝试从某些安装程序创建者学习一些专有脚本语言更灵活,也可能更快。任何带有花哨的gui和复选框等的东西都不可能在linux上自动做任何理性的事情。

答案 2 :(得分:0)

也许paver可以满足您的需求?你必须使用一些外部库将msi,dmg,tgz等部分添加为任务,但我相信它可以完成。