installation - 是否存在通用的跨平台安裝程序?



windows-installer deb (1)

我想有人試圖為應用程序或安裝程序實現創建跨平台安裝程序的開放標準嗎? 這意味著您只需從網站上下載單個文件,它的擴展名可以被任何流行的操作系統識別? 我們有用於windows的mac,.msi和普通.exe安裝程序的.pkg和.dmg文件,用於linux的.deb軟件包(如果是debian),但我們沒有針對每個平台的通用(例如.uoi(Universal Open Installer) ), 大聲笑)。

有人可能認為這種方法是不可能的,因為每個操作系統都有自己的結構和文件組織,但是這個安裝程序可能同時包含每個操作系統的指令,它甚至可能包含共享文件(如圖片,紋理或聲音),因為它們可以是重用於每個平台,它們與平台無關。

我認為實現這樣的安裝程序是一個好主意,免費為所有人和開源


“主流” :共享包裝格式似乎難以捉摸。 但是,有一些可用的 multi-platform deployment tools Installsite.org在這​​裡有一個列表 。 我猜兩種最常用的工具是(都是商業用途):

擴展的宇宙 :還有其他幾個工具,其中一個是 Bitrock InstallBuilder - 我一無所知的工具,所以我既不能推薦也不能解僱它。 還有 QtInstaller框架 ,我還沒有嘗試過。 看過人們推薦install4j 。 這是 install4j站點 安裝Java EE應用程序的InstallAnywhere替換有哪些好處?

然後是 零安裝 - 一個跨平台的打包和分發軟件 - 我的未知領域。 和 Steam ,由 Valve 開發和維護的跨平台視頻遊戲發行,許可和社交遊戲平台。 用於購買,下載,安裝,更新,卸載和備份視頻遊戲。 它適用於Windows,OS X和Linux。 與Steam相似的是Ubisoft的 Uplay - 另一個視頻遊戲發行平台。 也許應該提到 PyInstaller ? (跨平台Python程序)。

Java :我在 SO問題中 遇到了 Oracle Universal Installer 。 適用於Oracle工具的基於Java的安裝程序。 一個神秘的工具。 現在已經棄用的舊 Java Java小程序 ,以及即將過時的 Java Web Start 功能應該被稱為跨平台。 開發人員應該在2020年底之前遷移到 jlink Oracle PDF:Java客戶端路線圖更新 )。

未來? :在一個真正的答案領域並不多,但有些指針。 我一直在重複,說實話,我對這些工具知之甚少。 我想最近 的基於XML / Zip的格式 可以比以前的技術更容易跨平台製作,例如Windows的COM結構化存儲文件(舊的MS Office文件格式,文件中的文件系統本質上是數據流)用於MSI安裝程序。 時間會證明。 在雲的時代,誰知道什麼會浮出水面?

奮鬥 :但是,我可以告訴你,我一直在努力將多平台安裝程序作為企業應用程序打包程序(不開發設置,只是部署它們),而這些多平台安裝程序一直存在問題。 非常非標準和高驚訝因素有時需要處理 。 例如:你啟動一個 setup.exe ,它只啟動第二個 setup.exe ,然後退出報告沒有任何明智的做法,所以你不知道實際安裝發生了什麼異步。 那種東西。 因此,您必須編寫奇怪的腳本來檢查安裝進度等...處理多平台安裝程序從未如此有趣。

一些鏈接