我不同意这是不可能的。您当然可以在另一个操作系统上执行 PackageMaker 在 OSX 上执行的所有操作。只需创建这些文件即可:
Contents/
Archive.bom
Archive.pax.gz
Info.plist
PkgInfo
Resources/
TokenDefinitions.plist
package_version
en.lproj/
Description.plist
.plist 文件可以在 Python 中轻松创建plistlib现在这是 Python 中的标准。 .bom 和 .pax.gz 有点棘手,但其余都是文本文件。
.pax.gz 文件的 .gz 部分表示它是使用 gzip 压缩的。这在 Windows 和 Linux 上可用。
根据帕克斯手册页pax 文件实际上可以采用多种不同的存档格式,包括cpio and tar,在 Linux 或 Windows 中也很容易做到。 PackageMaker 似乎创建压缩cpio文件,至少在 10.6 上。
.bom 文件是包中所有文件及其大小的列表。它可能是在 OSX 之外创建的最难的部分。 BOM 代表物料清单,来自 NextSTEP 操作系统。我无法找到有关 BOM 格式的太多信息,但这里有一些线索:NextSTEP bom 手册页, OSX bom 手册页
编辑:我现在已经实现了一个版本lsbom我已将其置于公共领域。代码可以在 Subversion 中找到:https://cauldrondevelopment.com/svn/osxbom/trunk
也许有人也可以实施mkbom然后就会有一个完整的解决方案。查看头文件bom.h上面的代码对 BOM 文件格式进行了较为完整的描述。
编辑2:一个工作版本mkbom现已实施,可以在这里找到:https://github.com/hogliux/bomutils
以及有关如何在 Linux 上创建安装程序的详细教程:http://hogliux.github.io/bomutils/tutorial.html
另请参阅问题如何在非 mac 平台上构建本机 mac-os-x-installer.