Snappy (包管理器)

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

 功能 
“snap”应用程序包本身是一种自给自足的软件，且可以在众多Linux发行版上正常运行。这不同于传统的Linux包管理方法（如-{zh-cn:高级打包工具;zh-tw:進階打包工具}-和RPM），透過傳統方式进行应用程序的更新需要针对各Linux发行版对软件包特别定制，从而使软件开发和最终用户的软件部署之间产生了延迟。Upgrading packaged Ubuntu application unreasonably involves upgrading entire OS Bug #578045  on bugs.launchpad.net/ubuntu by John King (2010-05-10)Linus Torvalds on the problems of distro packaging  Linus Torvalds on DebConf 2014

snap包本身不依赖任何外部软件商店，可以从任何来源取得，并因此可以用于上游软件部署。当Snappy和snap包部署于Ubuntu或其他一些Linux系统时，Ubuntu的软件商店是缺省的用于获取snap包的后端，但这并非强制的，用户可以使用其他软件商店。

开发者可以利用snap创建命令行工具、后台服务以及桌面应用程序。使用snap的情况下，可以通过原子操作或差分編碼完成升级。

2016年6月起，snapd成为Ubuntu以外多种Linux发行版的的一部分。而在此之前snapd主要应用于完全基于snap的Ubuntu Core操作系统。

 Snapcraft 
Snapcraft是供开发人员将其程序打包为snap格式供Snappy使用的工具。

 snap格式 
snap格式是一种可以由主机操作系统动态挂载的压缩的文件系统，其中还附有元数据声明，snap系统可以据其为应用程序设置适当的安全沙箱或容器。该文件格式的扩展名为.snap。

 应用和反响 
Snappy包系统已被部署在众多物联网环境，从面向消费者的产品到企业设备管理网关都有其身影。Snappy也被默认包含在Ubuntu 16.04桌面映像中。

截屏软件的开发者停止了对Snappy的支持，而继续使用Flatpak和AppImage。他们给出了以下理由：snap目前主要应用于Ubuntu，而像ArchLinux这样的系统的官方版本已经不包含snap；对开发者来说snap比Flatpak和AppImage更耗时；用户需要手动安装Snap平台；Ubuntu 软件中心上的用户数据并不能与AppStream的数据互通。

 参见 

 AppImage
 Autopackage
 Flatpak
 ，另一个类似的项目
 使用目录（）作为应用程序包。

 参考资料 

Category:自由软件
Category:用C編程的自由軟體
Category:用Go編程的自由軟件
Category:Linux软件包管理相关软件
Category:操作系统技术
Category:软件包管理系统
Category:软件分发
Category:Ubuntu