是否存在通用的跨平台安装程序?

Ale*_*exM 4 installation windows-installer deb pkg-file

我想知道是否有人试图为应用程序或安装程序实现创建一种跨平台安装程序的开放标准?这意味着您可以简单地从网站下载单个文件,并且它的扩展名可以被任何流行的操作系统识别?我们有适用于 mac 的 .pkg 和 .dmg 文件,适用于 Windows 的 .msi 和普通 .exe 安装程序,适用于 linux 的 .deb 包(在 debian 的情况下),但我们还没有对每个平台通用(如 .uoi(通用开放安装程序) ), 哈哈)。

有人可能认为这种方法是不可能的,因为每个操作系统都有自己的结构和文件组织,但是这个安装程序可能同时包含每个操作系统的指令,它甚至可能包含共享文件(如图片、纹理或声音),因为它们可以为每个平台重用,并且它们是独立于平台的。

我认为实现这样的安装程序是个好主意,对所有人免费且开源

Ste*_*mul 9

“主流”:共享包装格式似乎难以捉摸。但是,有一些multi-platform deployment tools可用。Installsite.org 在底部有一个列表。我猜最常用的两个工具是(都是商业的):

扩展宇宙:还有其他几个工具,其中一个是Bitrock InstallBuilder - 我对这个工具一无所知,所以我既不能推荐也不能拒绝它。还有我还没有尝试过的QtInstaller 框架看到有人推荐 install4j。这是install4j 站点安装 Java EE 应用程序有哪些好的 InstallAnywhere 替代品?

然后是零安装——一个跨平台的打包和分发软件——对我来说是未知的领域。以及由Valve开发和维护的跨平台视频游戏分发、许可和社交游戏平台Steam。用于购买、下载、安装、更新、卸载和备份视频游戏。它适用于 Windows、OS X 和 Linux。与 Steam 类似的是Ubisoft 的Uplay——另一个视频游戏分发平台。也许应该提到PyInstaller?(跨平台 Python 程序)。

Java:前段时间我在一个SO 问题中遇到了Oracle Universal Installer。用于 Oracle 工具的基于 Java 的安装程序。一个神秘的工具。现在已弃用的旧Java Applets和即将过时的Java Web Start特性应该被称为跨平台。开发者应该在 2020 年底之前迁移到jlink - Oracle PDF:Java 客户端路线图更新-Oracle PDF:Java 客户端路线图更新 (被取代)。

未来?: 在真正的答案领域并不多,但有一些指示。正如我不断重复的那样,老实说,我对这些工具知之甚少。我猜最近的基于 XML/Zip 的格式可以比以前的技术更容易跨平台,例如 Windows 的 COM 结构化存储文件(旧的 MS Office 文件格式,本质上是文件中的文件系统 - 数据流)用于 MSI 安装程序。时间会告诉我们的。云时代,谁知道会浮出水面?

挣扎:但是,我可以告诉您,作为企业应用程序打包者(不是开发设置,只是部署它们),我一直在与多平台安装程序进行斗争,而这些多平台安装程序一直难以处理。有时要处理非常不标准和高的惊讶因素。例如:您启动了一个setup.exe,它只启动了一秒钟setup.exe,然后退出报告没有任何意义,所以您根本不知道异步启动的实际安装发生了什么。那种东西。因此,您必须编写奇怪的脚本来检查安装进度等……处理多平台安装程序从来都不是一件有趣的事。


一些链接

旧提及