Snappy (套件管理器)

Canonical開發的軟體部署與軟體管理系統

Snappy是一個軟件部署軟件套件管理系統,最早由Canonical公司為了Ubuntu流動電話作業系統而設計和構建。其套件稱為「snap」,工具名為「snapd」,可在多種Linux發行版上執行,完成發行上游主導的軟件部署。該系統的設計針對手機、雲端、物聯網桌上電腦

snap
開發者Canonical公司
原始碼庫 編輯維基數據連結
程式語言Go, C, Shell script, Python, JavaScript, NASL[1]
作業系統Linux
特許條款GNU GPLv3 (Client & Runtime), proprietary (Backend)[2]
網站snapcraft.io 編輯維基數據

功能

「snap」應用程式套件本身是一種自給自足的軟件,且可以在眾多Linux發行版上正常執行。這不同於傳統的Linux套件管理方法(如進階打包工具RPM),透過傳統方式進行應用程式的更新需要針對各Linux發行版對軟件套件特別客製化,從而使軟件開發和終端使用者的軟件部署之間產生了延遲。[3][4]

snap套件本身不依賴任何外部軟件商店,可以從任何來源取得,並因此可以用於上游軟件部署。當Snappy和snap套件部署於Ubuntu或其他一些Linux系統時,Ubuntu的軟件商店是預設的用於取得snap套件的後端,但這並非強制的,用戶可以使用其他軟件商店。

開發者可以利用snap建立命令列工具、後台服務以及桌面應用程式。[5]使用snap的情況下,可以通過原子操作差分編碼完成升級。[6][7][8][9]

2016年6月起,snapd成為Ubuntu以外多種Linux發行版的的一部分。而在此之前snapd主要應用於完全基於snap的Ubuntu Core作業系統。

Snapcraft

Snapcraft是供開發人員將其程式打套件為snap格式供Snappy使用的工具。[10]

snap格式

snap格式是一種可以由主機作業系統動態掛載的壓縮的檔案系統,其中還附有元數據聲明,snap系統可以據其為應用程式設置適當的安全沙盒或容器。該檔案格式的副檔名為.snap。

應用和反響

Snappy套件系統已被部署在眾多物聯網環境,從面向消費者的產品[11]到企業裝置管理閘道器都有其身影。[12]Snappy也被預設套件含在Ubuntu 16.04桌面映像中。

螢幕擷取軟件Peek英語Peek_(software)的開發者停止了對Snappy的支援,而繼續使用FlatpakAppImage。他們給出了以下理由:snap目前主要應用於Ubuntu,而像ArchLinux這樣的系統的官方版本已經不套件含snap;對開發者來說snap比Flatpak和AppImage更耗時;用戶需要手動安裝Snap平台;Ubuntu 軟件中心上的用戶數據並不能與AppStream的數據互通。[13][14]

參見

參考資料

  1. ^ snapcore · GitHub. GitHub. [5 November 2022]. (原始內容存檔於2023-04-02). 
  2. ^ What's The Deal With Snap Packages?. 24 June 2020 [13 February 2023]. (原始內容存檔於2023-06-09). 
  3. ^ Upgrading packaged Ubuntu application unreasonably involves upgrading entire OS Bug #578045頁面存檔備份,存於互聯網檔案館) on bugs.launchpad.net/ubuntu by John King (2010-05-10)
  4. ^ Linus Torvalds on the problems of distro packaging頁面存檔備份,存於互聯網檔案館Linus Torvalds on DebConf 2014
  5. ^ Canonical unveils 6th LTS release of Ubuntu with 16.04. Canonical Ltd. [22 April 2016]. (原始內容存檔於2017-11-03). 
  6. ^ Shuttleworth, Mark. Announcing Ubuntu Core, with snappy transactional updates!. 9 December 2014 [2017-11-03]. (原始內容存檔於2017-10-30). 
  7. ^ Willis, Nathan. Ubuntu Core and Snappy. Linux Weekly News. 28 January 2015 [7 November 2015]. (原始內容存檔於2018-10-13). 
  8. ^ 存档副本. [2017-11-03]. (原始內容存檔於2016-11-07). 
  9. ^ 存档副本. [2017-11-03]. (原始內容存檔於2017-10-28). 
  10. ^ Brodkin, Jon. Adios apt and yum? Ubuntu’s snap apps are coming to distros everywhere. Ars Technica. [13 August 2016]. (原始內容存檔於2019-05-14). 
  11. ^ Vaughan-Nichols, Stephen J. Ubuntu jumps into Internet of Things with Acer, GE, and Microsoft. ZDNet. 11 May 2015 [7 November 2015]. (原始內容存檔於2017-01-09). 
  12. ^ Sherman, Jordana. Snappy Core unlocks IoT value within the Dell Edge Gateway 5000 Series. Canonical Ltd. [7 November 2015]. (原始內容存檔於2017-07-31). 
  13. ^ Snap support for Peek screen recorder discontinued. Reddit. March 25, 2018 [May 12, 2018]. (原始內容存檔於2018-03-28). 
  14. ^ Peek Gif Screen Recorder Drops Support for Snap App. OMG! Ubuntu!. [2018-04-05]. (原始內容存檔於2018-04-06).