【发布时间】:2010-12-24 22:06:32
【问题描述】:
我想分发一个跨平台应用程序,其可执行文件略有不同,具体取决于下载它的用户。这是通过在可执行文件中的某处放置一个占位符字符串来完成的,该字符串在下载时替换为用户特定的内容。
必须进行这些字符串替换的网络服务器是一台 Linux 机器。对于 Windows,可执行文件没有压缩在安装程序 .exe 中,因此字符串替换很容易。
对于未压缩的 Mac OS X .dmg 文件,这也很简单。但是,使用 gzip 或 bzip2 压缩的 .dmg 文件并不容易。例如,在后一种情况下,压缩的 .dmg 不是一个大的 bzip2 压缩磁盘映像,而是由几个不同的 bzip2 压缩部分(具有不同的块大小)和一个 plist 后缀组成。此外,使用 bzip2 解压和重新压缩不同部分不会产生原始数据,所以我猜测 Apple 对 bzip2 使用了一些与命令行工具不同的参数。
有没有办法在 Linux(没有 hdiutil)上从未压缩的 .dmg 生成压缩的 .dmg?或者也许是创建自定义应用程序而不预先生成它们的另一个建议?它应该可以在没有用户输入的情况下工作。
【问题讨论】:
-
您是在问如何在 Linux 中重命名位于 .dmg 文件中的文件?
-
否,替换 .dmg 文件中某处的以 null 结尾的字符串。
-
为什么它需要放在 .dmg 文件中?
-
是的,最好。我希望在用户安装它时弹出带有背景图像的 dmg 内容。但如果没有好的解决方案,我可能不得不使用 zip 文件。
标签: linux macos software-distribution dmg diskimage