什么是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软件包

通过上述简单介绍,大概了解了什么是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 Core 20新系统介绍

Ubuntu Core 20是一个轻量,容器化,基于Ubuntu 20.04 LTS且为物联网设备和嵌入式系统所打造的版本,现在已经普遍可用。新版本内建的安全更新严格限制策略使创新者能够开发高安全的产品和方案,并完全专注于自己独特的功能和应用程序。Ubuntu Core 20由安全、广泛使用、易开发维护的snap组成,专为企业级生产和大规模部署和运营而设计。 安全的snap应用 Snap是适用于桌面、云和物联网的应用程序包且易于安装、安全、跨平台和自依赖。可以从Snap Store中浏览和安装Snap应用。Snap Store是一个拥有数百万用户的Linux 应用程序商店。不同于传统的Linux,在Ubuntu Core的架构上使用snap架构即从Linux内核到应用层都 […]

Ubuntu Core 20台北研討會:AIOT一步到位完整體驗 – 開發部署的首選

根據第三方市調機構IDC報告,2020年全球IoT物聯網技術的產值高達7,420億美元,然而在龐大的產業市場背後,複雜且陳舊的系統卻暴露出各種安全性漏洞,為IoT的穩定性與永續營運帶來威脅與挑戰。企業與開發者如何在既有環境下打造出兼顧安全、穩定、可靠與低成本的方案,也成為IoT產業發展的重中之重。 要打造高效益IoT解決方案,裝置核心的作業系統是成敗關鍵。Ubuntu Core是輕量化的Ubuntu作業系統,專為IoT裝置所設計,安全、可靠且滿足未來所需,包含基於雲端化的CI/CD整合開發等特色,能確保裝置可靠性持續更新,維繫IoT系統常保最佳狀態。 為慶祝新版Ubuntu Core 20發布,Ubuntu與合作夥伴們一起舉辦Ubuntu創新 Core 20產品發布&技術 […]

Canonical 推出对 Blender LTS 的企业级支持服务

2021年6月23日,Blender 已与 Canonical 合作为 Blender LTS 应用程序套件提供企业级支持。 Blender 是面向艺术家和媒体制作专家的免费开源 的3D创作套件。Canonical 是 Ubuntu 背后的公司,为开源软件提供专业的企业级支持和长期安全维护。随着 Blender 推出专注于企业级用户的 LTS 版本,通过双方的合作,Canonical 和 Blender 现在为团队和工作室提供了支持途径。 “很荣幸能够支持 Blender 以及这个卓越社区、其创始人和领导者的出色工作。今天的公告通过全方位服务规范支持和长期安全维护加强了 Blender。与 Blender 基金会合作将提供专业的 Blender 内容创作者所需的保证水平” […]