Ubuntu Snappy 学习心得 (1)

本文是关于Ubuntu Snappy的专题,介绍了其作为物联网操作系统的原子性升级、回滚功能以及适用于IoT设备的特点。内容包括Snappy的架构、安装方法以及简单的使用体验,强调了其在不同硬件平台上的应用。
摘要由CSDN通过智能技术生成

前言

第一次在 CSDN 开个博客,写点自己学习的东西。
首先就先写个 Ubuntu Snappy 的专题,我知道英文的网站以及 Ubuntu 官方网站已经有很多文章介绍了,我尽量翻译并结合自己的心得写一些,也为一些不太懂英文的同学有个借鉴的地方。我也不怎么喜欢码字,所以写的不一定很多,有些东西可能就是简单说说,有问题的欢迎留言。写太多了,我写着累,看官们看着更累。那么废话不多说了,先说说 Snappy
什么是 Snappy

http://www.ubuntu.com/cloud/snappy

特点

简单说就是用于物联网的 Ubuntu 操作系统。特点是原子性的升级,支持升级失败回滾到之前的版本。感觉设计还是比较先进的。特点大致如下:

  • 操作系统和应用程序完全隔离
  • 事务性的,image-based 增量更新,应用程序可回滾
  • 文件只读(不清楚这段什么意思,以后弄清楚再补充)
  • 支持签名 (signatures) 和手印 (fingerprint) (以后清楚再补充)
  • 增量管理,保证只下更新的部分

Snappy 因为这些特点,特别适合于在 IoT (Internet of Things) 物联网上使用。可以安装在机器人,汽车,商用/家用 交换机/路由器,无人机等各个领域里。

Snappy 架构

snappy arch
看得出底层是 Ubuntu core, 就是最小的 Ubuntu 操作系统,上面是构架,再上就是应用了

Snappy 安装

https://developer.ubuntu.com/en/snappy/start/

这里有详尽的安装方法,简单说就是可以安装到你的 Rasberry PI 上,Beaglebone 的板子上,可以在云计算里,还可以在物理机及虚拟机上安装。这里,我用的是 KVM 虚拟机,使用 libvirt + virt-manager 进行管理,挺方便的。如果就在本机上试,也可以用 vagrant + virtualbox 进行实验,这个也很方便,推荐。

Snappy 的简单之旅

https://developer.ubuntu.com/en/snappy/start/using-snappy/

安装完了之后登录进去,首先看看系统信息

$ snappy info 
release: ubuntu-core/15.04/stable
architecture: amd64
frameworks:
apps: 

这是最基本的系统,还没有安装应用程序。
显示已安装的组件:

$ snappy list -v
Name          Date       Version   Developer  
ubuntu-core   2015-11-13 10        ubuntu*    
docker        2015-11-30 1.6.2.005 canonical* 
hello-world   2015-11-30 1.0.18    canonical* 
webdm         2015-11-13 0.9.4     canonical* 
generic-amd64 2015-11-13 1.4       canonical*

搜索,安装软件:

$ snappy search docker
Name             Version   Summary  
matrix.mectors   0.0.11    matrix   
go-ether.mectors 0.0.3     go-ether 
docker           1.6.2.005 Docker
$ sudo snappy install docker
Installing docker
Starting download of docker
8.36 MB / 8.36 MB [==============] 100.00 % 1016.85 KB/s 
Done
Starting download of icon for package
21.58 KB / 21.58 KB [========------] 100.00 % 72.56 KB/s 
Done
Name          Date       Version   Developer 
ubuntu-core   2015-11-13 10        ubuntu    
docker        2015-12-02 1.6.2.005 canonical 
hello-world   2015-11-30 1.0.18    canonical 
webdm         2015-11-13 0.9.4     canonical 
generic-amd64 2015-11-13 1.4       canonical 

Snappy Help

$ snappy --help
Usage:
  snappy [OPTIONS] <command>

Help Options:
  -h, --help  Show this help message

Available commands:
  activate            Activate a package
  booted              internal
  build               Builds a snap package (aliases: bu)
  config              Set configuration for an installed package.
  console             Run snappy console interface
  deactivate          Deactivate a package
  firstboot           internal
  grub-migrate        internal
  hw-assign           Assign a hardware device to a package
  hw-info             List assigned hardware device for a package
  hw-unassign         Unassign a hardware device to a package
  info                Display a summary of key attributes of the snappy system.
  install             Install a snap package
  internal-run-hooks  internal
  internal-unpack     internal
  list                List active components installed on a snappy system (aliases: li)
  login               Log into the store
  man                 produces manpage
  purge               Remove all the data from the listed packages
  remove              Remove a snapp part
  rollback            Rollback to a previous version of a package
  search              Search for packages to install (aliases: se)
  service             Query and modify snappy services
  set                 Set properties of system or package
  update              Update all installed parts
  versions            (deprecated) please use "list"

再通过 snappy 安装个 hello-world

$ sudo snappy install hello-world

然后再来看 snappy info

$ snappy info
release: ubuntu-core/15.04/stable
architecture: amd64
frameworks: docker.canonical
apps: hello-world.canonical

看到 docker 是构架, hello-world 是应用程序。
构架对系统的影响或者扩展多一些,所以对 framework 的应用也要严一些;应用程序对系统不造成影响,可以直接从安装源或其他 vendor 那获取安装包安装
如果发现了有系统组件有更新,还可以通过 update 命令更新

$ sudo snappy update ubuntu-core

因为我当前的系统是最新的,所以没有更新,看原链接里的例子,ubuntu-core 有更新,那么可以通过更新到最新版本,然后重启系统,这时系统就进行最新的系统了,旧系统还在,如果有什么问题,可以随时通过回滾到老版本

$ sudo snappy rollback ubuntu-core
Setting ubuntu-core to version 3
Name        Date       Version Developer
ubuntu-core 2015-06-11 2       ubuntu!   
Reboot to use the new ubuntu-core.

然后重启系统,系统又退回到老版本了,对于 IoT 设备,是不是很关键而且必须的特性?
今天先写到这里,随着进行深入的学习,我再继续进行更新。敬请期待

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值