Flatpak

Flatpak
使用Flatpak安裝軟體的示例圖
使用Flatpak安裝軟體的示例圖
原作者Alexander Larsson
開發者Flatpak團隊[1]
首次发布2015年3月23日,​9年前​(2015-03-23
当前版本
  • 1.14.7 (2024年4月29日;穩定版本)[2]
編輯維基數據鏈接
源代码库
  • github.com/flatpak/flatpak
編輯維基數據鏈接
编程语言C
操作系统Linux
类型應用程式虛擬化英语Application virtualization
许可协议LGPL[3]
网站flatpak.org

Flatpak,在2016年5月前又被稱为xdg-app,是一個Linux桌面應用電腦環境的應用程式虛擬化英语Application virtualization系統。

原理

這個程式的目標是在使用者想要執行他們可能並不完全信任的应用软件時提供一個安全的沙盒環境供使用者使用[4]。應用程式將必須使用由flatpak提供的函式呼叫來控制硬體裝置或存取使用者的檔案,而flatpak將會在給予應用程式存取權限前提示使用者[5]

其原始名稱是來自於freedesktop.org的協作關係,其通常縮寫為“xdg”[6]。當時,freedesktop.org的伺服器被公認是xdg-app專案的家[7]。2016年5月,在活躍的開發下,其更名為“Flatpak”[8]

截至2016年6月 (2016-06)[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的格式,同時也支援應用程式商店式的数字发行與更新模式。

參考資料

  1. ^ About. [2022-07-17]. (原始内容存档于2018-10-17). 
  2. ^ 1.14.7. 2024年4月29日 [2024年4月30日]. 
  3. ^ xdg-app/xdg-app - Deployment and sandboxing framework for desktop applications. [2016-07-11]. (原始内容存档于2019-08-18). 
  4. ^ Willis, Nathan. GNOME and application sandboxing revisted. LWN. 2015-01-21 [2016-01-03]. (原始内容存档于2018-11-25). 
  5. ^ Willis, Nathan. Working with xdg-app application bundles. LWN. 2015-08-12 [2016-01-03]. (原始内容存档于2017-11-12). 
  6. ^ Pennington, Havoc. Re: XDG vs freedesktop.org. xdg (邮件列表). 2003-03-08 [2016-01-03]. (原始内容存档于2016-03-05). 
  7. ^ Larsson, Alex. github or freedesktop?. xdg-app (邮件列表). 2015-12-17 [2016-01-03]. (原始内容存档于2016-03-06). 
  8. ^ Alexander Larsson. Renamed to flatpak in git. freedesktop.org. 2016-05-09 [2016-06-01]. (原始内容存档于2016-06-24). 
  9. ^ LibreOffice in a Box. The What of How. 11 August 2015 [2016-07-11]. (原始内容存档于2016-10-12). 
  10. ^ LibreOffice in Flatpak format. Libreoffice.org accessdate= 2016-06-01. [2016-07-11]. (原始内容存档于2016-07-12). 
  11. ^ Playing with xdg-app for PrefixSuffix and Glom. [2016-07-11]. (原始内容存档于2016-07-16). 
  12. ^ Pitivi-download. [2016-07-01]. (原始内容存档于2019-02-15). 
  13. ^ Projects/SandboxedApps - GNOME Wiki!. wiki.gnome.org. [2016-04-16]. (原始内容存档于2016-03-23). 
  14. ^ Alexander Larsson. Experiments with runtime-less app-bundles. 2007-08-07 [2016-07-11]. (原始内容存档于2018-06-22). 
  15. ^ Canonical. Universal “snap” packages launch on multiple Linux distros. 2016-06-14 [2016-07-11]. (原始内容存档于2016-07-18). 

參見

操作系统组件
音频
图形
其它
函式庫
軟體框架
  • CppUnit英语CppUnit
  • Galago英语Galago (software)
  • GeoClue英语GeoClue
  • Open Collaboration Services英语Open Collaboration Services
  • Telepathy
会议
 
编译包(二进制
Linux
格式
Dpkg
RPM
tarball
  • slapt-get英语slapt-get
  • slackpkg英语slackpkg
  • netpkg英语netpkg
  • swaret英语swaret
其他
MacOS
Windows
TrueOS
Solaris
  • IPS英语Image Packaging System
  • Pkgutil英语Pkgutil
嵌入式操作系统
行動作業系統
電子遊戲機
跨平台
  • Dpkg
  • IPS英语Image Packaging System
  • OpenPKG英语OpenPKG
  • pkgsrc英语pkgsrc
  • Zero Install英语Zero Install
  • IBM SmartCloud Enterprise英语IBM cloud computing#IBM SmartCloud
  • Nix
  • wpkg英语wpkg
  • Steam
插件
Google Chrome
Firefox
  • 附加组件
Z/OS
  • SMP/E英语SMP/E
 
非编译包(源代码
Linux
MacOS
混合系统
元包管理器英语Meta package managers
Python
  • PyPI
  • pip
  • easyinstall英语Setuptools#EasyInstall
  • PyPM英语Python Package Manager
  • Anaconda
  • Enthought Canopy英语Enthought
  • 列表级条目 列表英语List of software package management systems
  • 分类 分类
  • 共享资源页面 共享资源