Snappy (包管理器)

snap
開發者科能
源代码库
  • github.com/snapcore/
編輯維基數據鏈接
编程语言Go, C, Shell script, Python, JavaScript, NASL[1]
操作系统Linux
许可协议GNU GPLv3 (Client & Runtime), proprietary (Backend)[2]
网站snapcraft.io 编辑维基数据

Snappy是一个软件部署软件包管理系统,最早由Canonical公司为了Ubuntu移动电话操作系统而设计和构建。其包称为“snap”,工具名为“snapd”,可在多种Linux发行版上运行,完成发行上游主导的软件部署。该系统的设计面向手机、云、物联网桌上型電腦

功能

“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]

参见

  • 便携式应用程序创建器英语Portable application creators
  • AppImage
  • Autopackage
  • Flatpak
  • Zero Install英语Zero Install,另一个类似的项目
  • ROX英语ROX Desktop使用目录(AppDirs英语Application directory)作为应用程序包。

参考资料

  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). 
Ubuntu
一般
人物
  • Jono Bacon英语Jono Bacon
  • Ben Collins
  • Benjamin Mako Hill英语Benjamin Mako Hill
  • Ian Jackson英语Ian Jackson
  • Scott James Remnant英语Scott James Remnant
  • 马克·沙特尔沃思
  • Jeff Waugh英语Jeff Waugh
  • Jane Silber英语Jane Silber
衍生版
官方版本
社区支持
第三方
已终止
软件
  • Bazaar英语GNU Bazaar
  • Juju英语Juju (software)
  • Mir显示服务器
  • Startup Disk Creator英语Startup Disk Creator
  • 软件更新器
  • Ubiquity
已终止
第三方
技术和用户界面
第三方
硬件
  • System76
  • Ubuntu Edge英语Ubuntu Edge
支持
  • Ask Ubuntu
  • Launchpad
  • Medibuntu英语Medibuntu
  • Paper cut bug英语Paper cut bug
  • Ubuntu受限額外程式
  • Ubuntu专业认证英语Ubuntu Professional Certification
  • Ubuntu论坛英语Ubuntu Forums
  • Ubuntu OneUbuntu SSO英语Ubuntu Single Sign On
第三方
  • GetDeb英语GetDeb
字体
媒体
相关主题
  • 分类 分类
  • 共享资源页面 共享资源
  • 维基百科图书 书籍
  • 维基学院页面 维基学院
 
编译包(二进制
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
  • 分类 分类
  • 共享资源页面 共享资源