2

这就是我想要的:

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

  • Windows 上的 MSI
  • MacOSX 上的 dmg
  • Linux 上带有 install.sh(和 rpm/deb,如果可能的话)的压缩包

例如,

安装配置.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)。

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

注意 2:特定于平台的事情应该是可能的。例如,我应该能够在 Windows 上指定合并模块。

4

3 回答 3

3

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

于 2009-09-16T02:38:18.940 回答
0

您的要求可能是手工滚动一个 make 脚本来做这些事情是一天的顺序。如果你不喜欢make,或者用python写。与尝试从某些安装程序创建者那里学习某些专有脚本语言相比,它会更加灵活并且可能更快。任何带有花哨的 gui 和复选框等的东西都不太可能在 linux 上自动执行任何合理的操作。

于 2009-09-16T01:52:54.850 回答
0

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

于 2009-09-16T02:25:11.713 回答