Snappy (包管理器)
Snappy是一个软件部署和软件包管理系统,最早由Canonical公司为了Ubuntu移动电话操作系统而设计和构建。其包称为“snap”,工具名为“snapd”,可在多种Linux发行版上运行,完成发行上游主导的软件部署。该系统的设计手机、、物联网和桌上型電腦。
開發者 | 科能 |
---|---|
源代码库 | |
编程语言 | Go, C, Shell script, Python, JavaScript, NASL[1] |
操作系统 | Linux |
许可协议 | GNU GPLv3 (Client & Runtime), proprietary (Backend)[2] |
网站 | snapcraft |
功能
“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的开发者停止了对Snappy的支持,而继续使用Flatpak和AppImage。他们给出了以下理由:snap目前主要应用于Ubuntu,而像ArchLinux这样的系统的官方版本已经不包含snap;对开发者来说snap比Flatpak和AppImage更耗时;用户需要手动安装Snap平台;Ubuntu 软件中心上的用户数据并不能与AppStream的数据互通。[13][14]
参见
- 便携式应用程序创建器
- AppImage
- Autopackage
- Flatpak
- Zero Install,另一个类似的项目
- ROX使用目录(AppDirs)作为应用程序包。
参考资料
- . GitHub. [5 November 2022]. (原始内容存档于2023-04-02).
- . 24 June 2020 [13 February 2023]. (原始内容存档于2023-06-09).
- 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
- . Canonical Ltd. [22 April 2016]. (原始内容存档于2017-11-03).
- Shuttleworth, Mark. . 9 December 2014 [2017-11-03]. (原始内容存档于2017-10-30).
- Willis, Nathan. . Linux Weekly News. 28 January 2015 [7 November 2015]. (原始内容存档于2018-10-13).
- . [2017-11-03]. (原始内容存档于2016-11-07).
- . [2017-11-03]. (原始内容存档于2017-10-28).
- Brodkin, Jon. . Ars Technica. [13 August 2016]. (原始内容存档于2019-05-14).
- Vaughan-Nichols, Stephen J. . ZDNet. 11 May 2015 [7 November 2015]. (原始内容存档于2017-01-09).
- Sherman, Jordana. . Canonical Ltd. [7 November 2015]. (原始内容存档于2017-07-31).
- . Reddit. March 25, 2018 [May 12, 2018]. (原始内容存档于2018-03-28).
- . OMG! Ubuntu!. [2018-04-05]. (原始内容存档于2018-04-06).