谢谢您的订阅!
当新的内容发布后您将开始接收邮件。您也可以点击邮件内的链接随时取消订阅。关闭Close

什么是Snap应用?

by liam zheng on 21 October 2020

如果你在使用 Ubuntu 18.04 / 20.04 LTS 版本的 Ubuntu 系统,会发现系统里面多了一个应用格式包 —— .snap 包。Snap 包是 Ubuntu 16.04 LTS 发布时引入的新应用格式包。目前已流行在 Ubuntu 且在其他如 Debian、Arch Linux、Fedora、Kaili Linux、openSUSE、Red Hat 等 Linux 发行版上通过 snapd 来安装使用 snap 应用。较传统 Linux 的 rpm,deb 软件包,snap 有什么特点和优势呢?下面将为你介绍snap软件包。

安全,通用的 Linux 软件包

当你在安装完 snap 后,你会发现在在根目录下会出现如 /dev/loop0 的挂载点,这些挂载点正是 snap 软件包的目录。Snap 使用了 squashFS 文件系统,一种开源的压缩,只读文件系统,基于 GPL 协议发行。一旦 snap 被安装后,其就有一个只读的文件系统和一个可写入的区域。应用自身的执行文件、库、依赖包都被放在这个只读目录,意味着该目录不能被随意篡改和写入。

squashFS 文件系统的引入,使得 snap 的安全性要优于传统的 Linux 软件包。同时,每个 snap 默认都被严格限制(confined),即限制系统权限和资源访问。但是,可通过授予权限策略来获得对系统资源的访问。这也是安全性更好的表现。

Snap 可包含一个或多个服务,支持 cli(命令行)应用,GUI 图形应用以及无单进程限制。因此,你可以单个 snap 下调用一个或多个服务。对于某些多服务的应用来说,非常方便。前面说到 snap 间相互隔离,那么怎么交换资源呢?答案是可以通过 interface(接口)定义来做资源交换。interface 被用于让 snap 可访问 OpenGL 加速,声卡播放、录制,网络和 HOME 目录。Interface 由 slot 和 plug 组成即提供者和消费者。

默认 Snap 应用格式包,专为物联网设备、嵌入式平台设计的迷你 Ubuntu

查看 Ubuntu Core

如何使用 snap 软件包

通过上述简单介绍,大概了解了什么是 snap 应用包,如你已经在电脑上安装了Ubuntu,那么就可以通过下面的操作来安装使用 snap 软件包。Snap 的基本命令:install, remove, find, list, infor, refresh 等等。

1.安装 snap,可使用以下命令或图形界面的 store 通过鼠标点击操作:

sudo snap install code //安装code snap

2.卸载 snap

sudo snap remove code

3.搜索 snap

snap find code

4.查看 snap 信息

snap info code

5.查看已安装的 snap

snap list

6.更新 snap

sudo snap refresh code channel=latest/stable //channel来指定通道版本

更多关于 snap 的使用说明,请访问 snap 网站文档

不止 Linux 桌面应用

Snap 除了在 Ubuntu 桌面和其他 Linux 发行版桌面系统上使用外,还能在Ubuntu server 和 Ubuntu Core 上使用且为 Ubuntu Core 默认应用格式包。Ubuntu Core 是迷你、与Ubuntu一致,专为物联网设备、嵌入式平台设计,更多内容请访问Ubuntu Core网页

目前,Ubuntu 的相关产品已以 snap 包的形式发布,例如 Ubuntu MAASJujuMultipassMicroK8sMicroStack 等等。借助 snap,你可以一键安装专为笔记本工作站打造的 Kubernetes 和 OpenStack,省去了安装等待和繁琐配置过程。对于开发和测试团队来说无疑是一个更高效的方案,将更多的精力和资源投入到关键价值上。

Snap应用开发与Snapcraft

介绍了这么多 snap 相关内容,如何 snap 如何开发呢?Snap 应用使用 snapcraft 来开发,并且 snapcraft 已打包为 snap 应用,一键安装:sudo snap install snapcraft –classic 即可开始构建你的 snap 应用。关于 snap 开发和 snapcraft 使用的更多内容,请加入本月 Ubuntu Tech Live视频直播,届时 Ubuntu 专家将现场教学,开发自己的第一个 snap 应用。

订阅博客文章

订阅您感兴趣的主题

在提交此表格的同时,我确认已阅读和同意的隐私声明隐私政策。

查看更多内容

Ubuntu 正式支持 NVIDIA Jetson

Ubuntu 正式支持 NVIDIA Jetson:助力边缘 AI 未来发展 Canonical 宣布推出支持 NVIDIA® Jetson Orin™ 的 Ubuntu 正式发布版本,该版本专为边缘 AI 和机器人领域打造,为全球 AI 开发者带来优化的性能、开箱即用的兼容性以及实现高性能 AI 解决方案的便捷途径。 Ubuntu 发行商 Canonical 宣布正式支持 NVIDIA Jetson 平台,标志着其与 NVIDIA 的合作迎来重要里程碑,为加速边缘 AI 领域创新再添动力。此次正式发布(GA)版本为 Ubuntu 与 NVIDIA Jetson 系统级模块解决方案的强大组合赋予了企业级的稳定性与技术支持。 为各行各业 AI 创新赋能 此次通过 Canon […]

分步指南:在 Ubuntu 上使用 Azure IoT Operations

简介 随着最近 Azure IoT Operations 的发布,Microsoft 为其客户提供了一个统一的数据平面,在节点数据捕获、基于边缘的遥测处理和云入口方面做出重大改进。  Azure IoT Operations 与 Ubuntu 的结合可谓是相得益彰,可以构建开箱即用的安全可靠的解决方案。  这篇博客是 Microsoft 的 Azure IoT Operations 入门的分步指南。最后,您会将 Azure IoT Operations 服务部署到本地支持 Azure Arc 的 microk8s Kubernetes 集群,并使用 X509 证书身份验证配置了与集群的 MQTT 代理的安全通信。为了实现这一点,您将执行命令、创建和编辑文件并发布自签名证书 […]

利用开源机器学习基础架构加速 AI 发展

人工智能技术在迅速发展,对稳健强大且可扩展的基础架构具有迫切需求。为应对这些挑战,我们精心打造了一套全面的参考架构(RA),充分利用了开源工具与尖端硬件的强大功能与性能。这套架构基于 Canonical 的 MicroK8s 和 Charmed Kubeflow 构建,运行于 Dell PowerEdge R7525 服务器之上,并借助NVIDIA NIM 微服务实现加速,为部署和管理机器学习工作负载提供了一个简便高效的途径。 为数据科学家与工程师赋能 该解决方案旨在为数据科学家和机器学习工程师赋能,使其能够实现更快迭代、无缝扩展以及强有力的安全保障。对于基础架构构建者、解决方案架构师、DevOps 工程师以及首席技术官(CTO)而言,这套参考架构提供了一条畅通无阻的途径 […]