是否存在通用的跨平台安装程序? [英] Does an universal cross-platform installer exists?
问题描述
我想知道有人试图为应用程序的跨平台安装程序或安装程序实现创建某种开放标准吗?这意味着您可以简单地从网站上下载单个文件,并且任何流行的操作系统都可以识别出该扩展名吗?我们拥有适用于Mac的.pkg和.dmg文件,适用于Windows的.msi和普通.exe安装程序,适用于Linux的.deb软件包(对于debian而言),但我们并非适用于每个平台(例如.uoi(通用开放安装程序) ), 哈哈).
人们可能会认为这种方法是不可能的,因为每个操作系统都有自己的结构和文件组织,但是此安装程序可能同时包含每个操作系统的说明,甚至可能包含共享文件(例如图片,纹理或声音),例如它们可以在每个平台上重复使用,并且与平台无关.
我认为实现这样的安装程序是个好主意,该安装程序对所有人免费且开源
主流" :共享打包格式似乎难以捉摸.但是,有一些 multi-platform deployment tools
可用. Installsite.org在此底部有一个列表.我猜两个最常用的工具是(均为商业工具):
- 适用于Java的高级安装程序/Advanced Installer Enterprise (Windows和Mac,没有Linux)
- Flexera InstallAnywhere (Windows,Mac ,Linux)
扩展的宇宙 :还有其他几种工具,其中一种是 Bitrock InstallBuilder -我一无所知的工具,因此我既不能推荐也不能将其关闭.我还没有尝试过 QtInstaller Framework . 看到有人推荐install4j .这是> install4j网站 : 零安装 -跨平台包装和分发软件-对我来说是未知领域.而 Steam (跨平台视频游戏发行版) ,许可和社交游戏平台,由 Valve 开发和维护.用于购买,下载,安装,更新,卸载和备份视频游戏.它可以在Windows,OS X和Linux上运行.与Steam相似的是另一个视频游戏分发平台Ubisoft的 Uplay .也许应该提到 PyInstaller ? (跨平台Python程序).
Java :我遇到了 Oracle Universal Installer 回到 Java小程序,并且很快就会过时了 jlink 2020年底之前- Oracle PDF:Java客户端路线图更新 - Oracle PDF:Java客户路线图更新 (已取代).
未来吗? :真正答案的范围不大,但有些指针.正如我不断重复的,说实话,我对这些工具了解不多.我猜想比起以前的技术,例如Windows的COM结构化存储文件(旧的MS Office文件格式,本质上是文件系统中的文件系统),最近的基于XML/Zip的格式可以更容易地实现跨平台. -数据流),用于MSI安装程序.时间会证明一切.在云时代,谁知道会浮出水面?
苦苦挣扎 :不过,我可以告诉您,作为公司应用程序打包程序,我一直在与多平台安装程序作斗争(不开发安装程序,只是部署它们) ,而这些多平台安装程序一直很难解决. 有时需要处理的非常非标准且令人惊讶的因素.例如:您启动一个setup.exe
,该setup.exe
仅启动另一个setup.exe
,然后退出并没有报告任何有意义的信息,因此您根本不知道异步启动的实际安装发生了什么.这种东西.因此,您必须编写怪异的脚本来检查安装进度,等等.处理多平台安装程序从未如此有趣.
某些链接 :
- https://en.wikipedia.org/wiki/List_of_software_package_management_systems
- http://www.pyinstaller.org/(跨平台Python程序)
- https://en.wikipedia.org/wiki/List_of_installation_software (也许检查安装VISE )
- https://docs .oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html
- http://izpack.org/downloads/
旧提及 :
- 如何进行转换我的Java程序保存为.exe文件?
- 安装Java应用程序的安装程序
- 什么是好的InstallAnywhere替代品,用于安装Java EE应用程序?
- 什么是自动升级基于MSI的应用程序的最佳实践?
- 如何创建MSI Windows安装程序Java程序?
- 为Java桌面应用程序创建安装程序
- https://stackoverflow.com/tags/java-web-start/info
I wonder is someone tried to create either kinda open standard for cross-platform installer for an application or the installer implementation? That means you can simply download single file from the website, and it's extension recognizable by any popular operating system? We have .pkg and .dmg files for mac, .msi and plain .exe installers for windows, .deb packages for linux (in case of debian), but we haven't universal for each platform (like .uoi (Universal Open Installer), lol).
One might think that this approach is impossible because every OS has it's own structure and files organization, but this installer could potentially contain instructions for each OS simultaneously, and it may contain even shared files (like pictures, textures or sounds) as they can be reused for each platform and they are platform-independent.
I think it's a good idea to implement such installer, free for all and open-source
"Mainstream": A shared packaging format seems elusive. However, there are a few multi-platform deployment tools
available. Installsite.org has a list towards the bottom here. I guess the two most commonly used tools are (both are commercial):
- Advanced Installer for Java / Advanced Installer Enterprise (Windows and Mac, no Linux)
- Flexera InstallAnywhere (Windows, Mac, Linux)
Extended Universe: There are several other tools, one of which is Bitrock InstallBuilder - a tool I know nothing about, so I can neither recommend nor dismiss it. There is also the 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?
Then there is 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 should be mentioned? (cross platform Python programs).
Java: I encountered 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 (superseded).
Future?: Not much in the realm of a real answer, but some pointers. As I keep repeating, I don't know much about these tools to be honest. I guess recent XML / Zip-based formats can be made cross-platform more easily than previous technologies such as Windows's COM structured storage files (the old MS Office file format, a file-system in a file essentially - streams of data) that were used for MSI installers. Time will tell. In the age of the cloud, who knows what will surface?
Struggle: I can, however, tell you that I have been struggling with multi-platform installers as a corporate application packager (not developing setups, just deploying them), and these multi-platform installers have always been problematic to deal with. Very non-standard and high astonishment factor at times to deal with. For example: you launch a setup.exe
which only launches a second setup.exe
and then exits reporting nothing sensible, so you don't know what happened to the actual install that was kicked of asynchronously at all. That kind of stuff. So you have to write weird scripts to check installation progress, etc... Dealing with a multi-platform installer has never been fun.
Some Links:
- https://en.wikipedia.org/wiki/List_of_software_package_management_systems
- http://www.pyinstaller.org/ (cross platform Python programs)
- https://en.wikipedia.org/wiki/List_of_installation_software (maybe check Installer VISE)
- https://docs.oracle.com/javase/8/docs/technotes/guides/deploy/self-contained-packaging.html
- http://izpack.org/downloads/
Old mentions:
- 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?
- What is the best practice to auto upgrade MSI based application?
- How to create a MSI Windows installer for a Java program?
- Creating an installer for Java desktop application
- https://stackoverflow.com/tags/java-web-start/info
这篇关于是否存在通用的跨平台安装程序?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!