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).