1.snap 是用于 Linux 发行版的软件包,它们在设计的时候吸取了像 Android 这样的移动平台和物联网设备上分发软件的经验教训。 snapcraft 这个名字涵盖了 snap 和用来构建它们的命令行工具、snapcraft.io 网站,以及在这些技术的支撑下构建的整个生态系统。
2.snap 软件包被设计成用来隔离并封装整个应用程序。这些概念使得 snapcraft 提高软件安全性、稳定性和可移植性的目标得以实现,其中可移植性允许单个 snap 软件包不仅可以在 Ubuntu 的多个版本中安装,而且也可以在 Debian、Fedora 和 Arch 等发行版中安装。snapcraft 网站对其的描述如下:为每个 Linux 桌面、服务器、云端或设备打包任何应用程序,并且直接交付更新。Snap是Ubuntu母公司Canonical于2016年4月发布Ubuntu16.04时候引入的一种安全的、易于管理的、沙盒化的软件包格式,与传统的dpkg/apt有着很大的区别。Snap可以让开发者将他们的软件更新包随时发布给用户,而不必等待发行版的更新周期;其次Snap应用可以同时安装多个版本的软件,比如安装Python2.7和Python3.3。
3.snap包具有如下的特性:
- 包含应用所需运行的所有dependence
- 你可以100%确定你的应用不会因为任何在应用之外的变化的改变而导致你的应用不能正常运行,比如卸载一个Java应用不会导致其它Java应用的运行.安装一个使用不同版本的Java JDK/OpenJDK的Java应用,不会干扰现有的任何一个运行在不同JDK/OpenJDK版本的Java应用
- 通常snap的包比正常应用的包要大,因为它包含了所有它需要运行的环境
4.snapcraft的功能是:
- 它是一个编译工具
- 让我们很方便地把不同资源的component集成起来,并编译它们
- 它是一个snap的打包工具