问题
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
回答1:
"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).
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
来源:https://stackoverflow.com/questions/51619358/does-an-universal-cross-platform-installer-exists