snap介绍培训资料

上传人:go****e 文档编号:137415172 上传时间:2020-07-08 格式:DOC 页数:43 大小:2.49MB
返回 下载 相关 举报
snap介绍培训资料_第1页
第1页 / 共43页
snap介绍培训资料_第2页
第2页 / 共43页
snap介绍培训资料_第3页
第3页 / 共43页
snap介绍培训资料_第4页
第4页 / 共43页
snap介绍培训资料_第5页
第5页 / 共43页
点击查看更多>>
资源描述

《snap介绍培训资料》由会员分享,可在线阅读,更多相关《snap介绍培训资料(43页珍藏版)》请在金锄头文库上搜索。

1、snap介绍精品文档Canonical公司于最近2016年月发布了一个新的Ubuntu 16.04系统,并且这个系统是长期支持版(LongTermSupport - LTS)它一如既往地支持debian安装包,但同时它也支持最新的snap安装包snap安装包是Canonical公司最新发布的一种安装包的格式,它甚至可以在其它的Linux发行版上安装更多的信息可以在我们的官方开发者网站:https:/ Canonical公司也于2016年月日发布了专为物联网(IoT)打造的Ubuntu Core 16操作系统在今天的这篇文章,我们将重点介绍Ubuntu Core系统的一些特点及其具体使用)什么是

2、snap?一个snap包: 是一个基于squashFS文件系统的文件它包含应用代码及包含有一个应用特有的叫做snap.yaml的metadata文件它含有一个只读的文件系统一旦安装,它会创建一个应用特有可以写的区域,任何其它的应用都不可以访问这个区域 它完全独立于系统在snap包里,它包含了它可以运行的所有需要的库及runtime(比如python或Java等),并且它可以通过网路更新,同时也可以退回到上一个版本,而不影响系统的其它部分的运行 它是受限的通过安全机制,它具有沙箱的属性,不可以随意访问外部资源,并和系统的其它部分进行隔离它可以通过良好设计的安全策略和其它的snap进行交互Ubun

3、tu Core系统的特点:最小的Ubuntu服务器image:由于有较小的内核,所有可以适用于更多的应用场景应用通过简单的.snap包来提供snap包不同于先前的debian及手机上的click包事务性更新 (transactional updates):通过商城的channel自动更新事务性更新提供一个更加可靠的系统在Ubuntu Core中含有两个root filesystem:A及B(各含有一个系统image)当A启动后,它可以用来更新B只有B更新完整后并且没有错误后才可以切换过来到B,否则永远处于A反之依然,我们可以用同样的办法来更新A区当然,我们在任何时候,也可以rollback,也

4、即回到以前的启动这样的做法可以保证我们的系统在任何的时候Ubuntu Core及应用的更新都是完整的这对很多需要稳定工作的环境的系统来说非常重要,比如更新一个远在路口的webcam等另外,更新应用或系统时只需要更新变化的部分(delta),这样传输的数据更少更强的应用安全:Ubuntu Core具有业界领先的安全性Ubuntu Core OS系统image只是可读的任何应用不可以更改它这样的好处是不至于由于某个应用的安装或升级从而导致系统image得到修改,进而导致有些已经安装的应用不能正常运行每个应用都有自己的可以读写的空间,并且它们之间是不可以互相访问的每个应用都运行于受限的沙箱之中API

5、的访问是由Apparmor及Seccomp来强制受限的它提供严格的基于MAC(Mandatory-Access-Control)的隔离传统的linux应用可以访问任何一个目录,并读写它们之中的文件这和Snappy系统是不同的如果一个应用需要特别的库,可以使用snapcraft来安装相应的库到自己的应用的私有目录中大家如果想对Ubuntu Core有更多的了解,也可以参阅我的视频Ubuntu Core 介绍(视频)16.04桌面支持如果大家还没自己的16.04的桌面系统,大家可以在地址下载最新的16.04的系统从上面的图中,我们可以看出来在16.04的桌面中支持两种格式的安装包:snap及deb

6、ian另外我们可以看出,snap包每个安装的应用都是自成一体:每个snap应用包含运行所需要的任何依赖(dependencies);同时我们可以看出每个snap应用都是互相隔离的(请注意OS也是一个snap)和debian包相比较,我们可以看出来每个debian应用的安装依赖于其它包的安装;debian应用之间可以不受限制地互相访问而造成安全问题;删除其中的一个debian应用或包可能导致其它的应用不可以正常运行相比较而言,不同的snap应用可以安装同样一个软件的不同版本(比如一个安装Python2.7,另外一个应用安装python3.3)而不造成任何的干扰从理论上讲,一个snap应用可以安装

7、到任何一个Linux的发行版上,因为它不依赖于操作系统及其发布版本这对于应用的维护来说是非常好的目前在如下的Linux发行版上支持snap包的安装大家如果有兴趣的话,可以试一下大家甚至可以直接从源代码编译在它上面运行的snapd环境 Canonical公司目前正在号召全社区把应用移植成为snap包,并最终把操作系统变为ubuntu core系统,从而打造最安全的操作系统及良好的应用维护对于一个All-snap Ubuntu core系统来说(如上面的右图所示),它可以分为两个逻辑部分: 只读的最基本的系统 这部分包括配置文件,标准目录,库,工具及核心的服务(比如network services

8、, libc, systemd及其它)系统的这部分是只读的,里面的每个元素不可以被分别更新这个被称之为system-image在一个系统中,这种image可以达到两个及以上这些最基本的系统是一种root filesystem的形式出现的在启动后它们之间可以互相roll back,也即如果一个系统启动有问题,可以自动切换到先前的或指定的系统image去这个部分也是通过snap打包来实现的 可写的snap应用及在其之上的架构(framework)它们利用上面的系统所提供的服务达成)安装为了能够使得在Ubuntu 16.04的系统上运行snap应用,我们必须做一些安装我们直接使用Ctrl+Alt+T

9、打开terminal:htmlview plaincopy1. $sudoaptupdate2. $sudoaptinstallsnapd3. $sudoaptinstallsnapcraftbuild-essential在我们的Ubuntu 16.04系统中,我们必须打开universe,这样我们可以在以后的开发中安装snapcraft工具了snapcraft是为了我们能够编译一个snap项目而必须的一个工具,尽管在运行时并不需要它位于下图所示的universe channel中这个可以在我们的Ubuntu系统中的设置中进行选择:你也可以通过命令行的方式来添加这个universe的仓库对于一

10、些想急于想得到最新的snapcraft及snapd的用户来说,你可以参阅EnableProposed文章来得到最新的更新在这里,我们简单地介绍一下所使用的术语: snapd:它是一个帮我们管理snap安装,卸载及通过事务性更新(transactional update)的一个环境同时也帮我对老的版本的snap进行垃圾回收(garbage collection)snapd位于我们Ubuntu Core系统的/usr/lib/snapd/snapd snapcraft:这是一个帮我们打包一个snap应用的工具snapcraft.yaml是用来定义如何把一个应用打包为snap包的yaml文件格式sn

11、apcraft工具利用它打包然后,你就可以在我们的terminal中安装及运用一个我们所需要的应用:htmlview plaincopy1. $sudosnapinstallss-qt2. $ss-qt我们可以在我们的电脑的dash中直接运行我们所安装的应用:如果大家想安装更多的应用的话,可以直接到我们桌面系统的应用商店进行安装:当一个应用被成功安装以后,我们也可以通过如下的命令来查看:htmlview plaincopy1. liuxgliuxg:/snappy/desktop/rssreader$snaplist2. NameVersionRevDeveloperNotes3. hello

12、-world6.327canonical-4. hello-world-cli0.1x1-5. hello-xiaoguo1.0x2-6. rssreader-app1.0x2-7. snappy-debug0.2322canonical-8. telegram-sergiusens0.9.50x1-9. test-license0.1x1-10. ubuntu-calculator-app2.1+snap35ubuntucoredev-11. ubuntu-core16.04+20160531.11-56122canonical-12. webcam-webui1.0x1-我们可以从上面看出

13、来所有已经被成功安装过的应用每个应用被安装后,就有一个自己的Version号码,同时也有一个Rev号码对于从Ubuntu Store商店里安装后的应用,这个Rev是一个数字号码,比如上面的ubuntu-calculator-app应用的Rev号码是5,相对于其它的不是从商店安装的应用来说,这个号码不是一个数字我们可以使用snap info命令来得到一个snap的详细信息:htmlview plaincopy1. $snapinfocore2. name:core3. summary:snapdruntimeenvironment4. publisher:canonical5. description:|6. Thecoreruntimeenvironmentforsnapd7. type:core8. tracking:stable9. installed:16-2(1337)78MB-10. refreshed:2017-02-2506:41:22+0800CST11. channels:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 幼儿/小学教育 > 其它小学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号