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

Does an universal cross-platform installer exists?

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

有人可能认为这种方法是不可能的,因为每个 OS 都有自己的结构和文件组织,但此安装程序可能同时包含每个 OS 的说明,甚至可能包含共享的文件(如图片、纹理或声音),因为它们可以在每个平台上重复使用,并且与平台无关。

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

"Mainstream":共享的打包格式似乎难以捉摸。但是,有一些 multi-platform deployment tools 可用。 Installsite.org has a list towards the bottom here。我猜最常用的两个工具是(都是商业的):

Extended Universe:还有其他几个工具,其中之一是 Bitrock InstallBuilder - 一个我一无所知的工具,所以我既不能推荐也不能拒绝它。还有 QtInstaller Framework which I have yet to try. Seen people recommend install4j. Here is the install4j site: What are good InstallAnywhere replacements for installing a Java EE application?

然后还有Zero Install - a cross-platform packaging and distributions software - uncharted territory for me. And Steam, the cross-platform video game distribution, licensing and social game-play platform, developed and maintained by Valve. Used to shop for, download, install, update, uninstall and back up video games. It works on Windows, OS X and Linux. Similar to Steam is Uplay from Ubisoft - another video game distribution platform. Maybe PyInstaller要提一下? (跨平台 Python 程序)。

Java:我遇到了Oracle Universal Installer some time back in a SO question. A Java-based installer for Oracle tools. A mystery-tool. The now deprecated Java Applets of old, and the soon to be obsolete Java Web Start feature should be mentioned as cross-platform. Developers are supposed to migrate to jlink before the end of 2020 - Oracle PDF: Java Client Roadmap Update - Oracle PDF: Java Client Roadmap Update(已被取代)。

Future?:在真正的答案范围内不多,但有一些指示。正如我不断重复的那样,老实说,我对这些工具知之甚少。我想最近的 XML / Zip-based 格式 可以比以前的技术更容易跨平台,例如 Windows 的 COM 结构化存储文件(旧的MS Office 文件格式,本质上是文件中的文件系统 - 数据流),用于 MSI 安装程序。时间会证明一切。云时代,谁知道会出现什么?

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


部分链接:

旧提:

  • How can I convert my Java program to an .exe file?
  • Make Installer of java Application
  • What are good InstallAnywhere replacements for installing a Java EE application?
  • How to create a MSI Windows installer for a Java program?
  • Creating an installer for Java desktop application
  • https://whosebug.com/tags/java-web-start/info

我用过安装生成器,是的,它是跨平台的。缺点是你必须付费。