认识
官网:https://snapcraft.io/
文档:https://snapcraft.io/docs
仓库:https://github.com/snapcore/snapd
Snaps 是由 Canonical 为 Ubuntu 手机操作系统设计和建造的软件部署和包管理系统,类似于 APT、YUM、DNF 等等包管理器,但是采用不同的机制。该系统设计用于电话、云、物联网、桌面计算。它的目标是通过提供更好的系统更新和更强的安全性,使软件部署在 Ubuntu 和其他 Linux 系统上更加简单、安全和可靠。
组成
1)Snappy:这是 Ubuntu Snappy 的核心,负责包管理和系统更新。Snappy 允许用户在一个独立和安全的环境中运行和更新应用,因为它会将应用和其依赖项打包在一个独立的 ‘snap’ 包中。
2)Snap 包:这是 Snappy 系统中的应用程序和服务的容器。每个 Snap 包都包含了运行一个应用所需的所有依赖项,这使得应用可以在没有网络连接的情况下运行,也可以在任何支持 Snappy 的系统上运行。
3)Snap Store:这是一个在线应用程序市场,用户可以在这里下载和更新 Snap 包。Snap Store 支持公共和私有的应用分发,允许开发者快速和安全地将他们的应用分发给用户。
4)Snapcraft:这是个用于创建 Snap 包的工具。它允许开发者容易地将他们的应用和其依赖项打包在一起,以方便分发和部署。
https://snapcraft.io/
Ubuntu Core:这是个基于 Snappy 的轻量级操作系统,专门为 IoT 和其他嵌入式设备设计。它的核心和应用都被打包成 Snap,以便于更新和管理。
性质
1)原子性更新:Snappy 包或称为“snap”,包含了运行应用程序所需的所有依赖项。更新是原子性的,意味着更新要么完全成功,要么在失败时回滚到之前的状态,这样可以避免部分更新导致的问题。
2)安全性:每个 snap 都在沙箱中运行,与系统的其它部分隔离。这样,即使应用程序受到威胁,也不会影响到整个系统。
3)跨平台:Snappy 可以在各种设备上运行,包括桌面计算机、服务器和物联网设备。
4)版本控制:Snappy 允许用户在不同版本的 snap 之间切换,提供了更好的控制和灵活性。
5)商店:Ubuntu 的 Snap Store 为开发人员提供了一个发布和分发他们的 snap 的平台,同时也使用户能够方便地发现和安装新的应用程序。
构建
安装 | 卸载
on CentOS 7.9
Installing snap on CentOS | Snapcraft documentation
yum install epel-release yum install snapd systemctl enable --now snapd.socket ln -s /var/lib/snapd/snap /snap # Either log out and back in again or restart your system to ensure snap’s paths are updated correctly.
on Debian GNU/Linux 10
Enable snaps on Debian and install RedisDesktopManager
apt update apt install snapd snap install core
on Ubuntu 20.04 LTS
Disabling Snaps in Ubuntu 20.10 (and 20.04 LTS) – Kevin Custer
# 03/07/2021 虽然 snap 具有众多有点,但是我们暂时不需要这些功能,而且使用 snap 还会带来额外的困扰(Selenium/Uploading Files),因此我们决定卸载 snap 服务。
apt-get purge snapd
应用
这条是写给我们自己的:当应用难以安装时,我们才会使用 snap 进行安装。
改进
WIP
参考
Wikipedia/Snap (package manager)
Wikipedia/Snappy
snapd 项目主页:https://github.com/snapcore/snapd
A ‘snap’ is a universal Linux package: https://www.ubuntu.com/desktop/snappy
Ubuntu 推出的 Snap 应用架构有什么深远意义?: https://www.zhihu.com/question/47514122
Ubuntu 16.04 LTS 如何使用 Snap 软件包: http://www.linuxidc.com/Linux/2016-04/130679.htm
将 Linux 软件打包成 Snap 软件包:https://linux.cn/article-7441-1.html