flatpak
原作者 | Alexander Larsson |
---|---|
開發者 | Flatpak團隊[1] |
首次釋出 | 2015年3月23日 |
目前版本 |
|
原始碼庫 | |
程式語言 | C |
作業系統 | Linux |
類型 | 應用程式虛擬化 |
授權條款 | LGPL[3] |
網站 | flatpak |
Flatpak,在2016年5月前又被稱為xdg-app,是一個Linux桌面應用電腦環境的應用程式虛擬化系統。
原理
這個程式的目標是在使用者想要執行他們可能並不完全信任的應用軟體時提供一個安全的沙盒環境供使用者使用[4]。應用程式將必須使用由flatpak提供的函式呼叫來控制硬體裝置或存取使用者的檔案,而flatpak將會在給予應用程式存取權限前提示使用者[5]。
其原始名稱是來自於freedesktop.org的協作關係,其通常縮寫為「xdg」[6]。當時,freedesktop.org的伺服器被公認是xdg-app專案的家[7]。2016年5月,在活躍的開發下,其更名為「Flatpak」[8]。
截至2016年6月[update],部份應用程式加入了在Flatpak(xdg-app)下執行的初步支援,如LibreOffice[9][10]、 Glom[11]與Pitivi[12]。
技術
其沙盒是基於Linux核心以下子系統所提供的功能:
- cgroups
- Linux namespaces
- SELinux(目前未使用)
- kdbus(未來可能會使用,目前使用使用者空間過濾)
- 視窗化系統基於Wayland(因為X Window核心協定已被開發者認為不安全[13])
替代方案
不依賴於特定發行版的包裝格式在Linux生態系中在Flatpak前早已被提出過數次。2000年代早期,autopackage開始,2004年則是klik,這也提供了Alexander Larsson靈感,於2007年開發出glick專案[14]。到了2014年,klik便演化成AppImage,其目標是成為不依賴於特定散佈版的可攜式上游打包格式。Canonical公司則於2016年釋出了Snappy,其目標也是為了提供廣泛的linux生態系一個通用的包裝格式[15],其支援類似於Flatpak的格式,同時也支援應用程式商店式的數位發行與更新模式。
參考資料
- ^ About. [2022-07-17]. (原始內容存檔於2018-10-17).
- ^ 1.14.10. 2024年8月14日 [2024年8月15日].
- ^ xdg-app/xdg-app - Deployment and sandboxing framework for desktop applications. [2016-07-11]. (原始內容存檔於2019-08-18).
- ^ Willis, Nathan. GNOME and application sandboxing revisted. LWN. 2015-01-21 [2016-01-03]. (原始內容存檔於2018-11-25).
- ^ Willis, Nathan. Working with xdg-app application bundles. LWN. 2015-08-12 [2016-01-03]. (原始內容存檔於2017-11-12).
- ^ Pennington, Havoc. Re: XDG vs freedesktop.org. xdg (郵寄清單). 2003-03-08 [2016-01-03]. (原始內容存檔於2016-03-05).
- ^ Larsson, Alex. github or freedesktop?. xdg-app (郵寄清單). 2015-12-17 [2016-01-03]. (原始內容存檔於2016-03-06).
- ^ Alexander Larsson. Renamed to flatpak in git. freedesktop.org. 2016-05-09 [2016-06-01]. (原始內容存檔於2016-06-24).
- ^ LibreOffice in a Box. The What of How. 11 August 2015 [2016-07-11]. (原始內容存檔於2016-10-12).
- ^ LibreOffice in Flatpak format. Libreoffice.org accessdate= 2016-06-01. [2016-07-11]. (原始內容存檔於2016-07-12).
- ^ Playing with xdg-app for PrefixSuffix and Glom. [2016-07-11]. (原始內容存檔於2016-07-16).
- ^ Pitivi-download. [2016-07-01]. (原始內容存檔於2019-02-15).
- ^ Projects/SandboxedApps - GNOME Wiki!. wiki.gnome.org. [2016-04-16]. (原始內容存檔於2016-03-23).
- ^ Alexander Larsson. Experiments with runtime-less app-bundles. 2007-08-07 [2016-07-11]. (原始內容存檔於2018-06-22).
- ^ Canonical. Universal “snap” packages launch on multiple Linux distros. 2016-06-14 [2016-07-11]. (原始內容存檔於2016-07-18).