今天很高兴看到Ubuntu Core 16终于发布了.Ubuntu Core 16系统是一个完全基于snap的系统.它包括foundation, applications,kernel,core操作系统及gadget等.所有的这些都被一个叫做为snapd的后台运行的工具进行安装及更新.最新的Ubuntu Core Image可以在如下的地址:
http://releases.ubuntu.com/ubuntu-core/16/
最新的image可以在如下的地址找到:
http://cdimage.ubuntu.com/ubuntu-core/16/stable/current/
你也可以找到Bubblegum-96的image:https://github.com/uCRDev/Bubblegum96-Snappy
他目前包括PC (amd64,i386)的发行版,同时它也对raspberry Pi2/3及QualComm的dragonboard 410c进行了支持.镜像一旦被解压缩,它就是可以直接启动的.PC版本可以直接运行于qemu-kvm,virtualbox或真正的x86机器上(比如Intel的NUC).
创建Ubuntu One账号
在做任何的安装之前,我们必须创建一个Ubuntu One账号.具体的步骤可以参考文章"创建Ubuntu Core账号并为Ubuntu Core设备添加新的账号".这个账号将被用于下面的设置console-conf之中.在创建账号的同时,我们必须记得把自己电脑上的ssh所生产的key考入到launchpad的账号之中.
在Ubuntu Desktop上进行测试Ubuntu Core
为了能够方便在PC上进行测试,我们可以在我们的Ubuntu Desktop系统上进行如下的操作:
1)安装qemu-kvm
$ sudo apt-get install qemu-kvm
...say yes and install the packages...
我们来检查一下我们的PC是否支持硬件虚拟化:
$ kvm-ok
INFO: /dev/kvm exists
KVM acceleration can be used
如果你看见上面的结果,那么我恭喜你啦!这是最好的结局 - 这意味着Snappy将在你的系统运行速度快,并充分利用硬件加速。如果你没有看到上面的结果,你可以尝试在你的电脑的BIOS中去启动硬件虚拟化功能.如果KVM不支持您的系统上,我们建议您尝试Ubuntu的系统在云上运行
2)下载Ubutu Core Image
我们通过下面的命令来下载我们所需要的镜像(这里以64bit为例)
$ wget http://releases.ubuntu.com/ubuntu-core/16/ubuntu-core-16-amd64.img.xz
等下载完后,我们使用如下的命令来进行解压缩:
$ unxz ubuntu-core-16-amd64.img.xz
3)启动KVM
现在,您可以在image所在的目录中从terminal中启动虚拟机KVM:
$ kvm -smp 2 -m 1500 -redir tcp:10022::22 ubuntu-core-16-amd64.img
在这里虚拟机的口地址我们已经做了重定向:
-10022 本地端口将指向虚拟机中的22口 (ssh)
在启动的过程中,console-conf所展示出来的信息"ssh USER@10.0.2.15"有点让人误解.事实上,我们可以运用如下的命令来登陆我们的kvm:
$ ssh -p 10022 USER@localhost
特别值得注意的是:我们必须把上面的USER换成我们自己的Ubuntu One上面的用户名.针对我的情况:
$ ssh -p 10022 liu-xiao-guo@localhost
如果你在你的Desktop的目录~/.ssh/config中添加如下的内容,而且它的内容是:
Host kvm.snappy
Hostname localhost
Port 10022
User USER
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
同样,我们需要把上面的USER换成自己的Ubuntu One用户名.那么你就直接使用如下的命令来启动:
$ ssh kvm.snappy
一旦进入到Ubuntu Core系统中,我们可以参阅文章"Ubuntu Core介绍及其使用"来熟悉snap的各种命令,从而对Ubuntu Core系统更加了解.
如果大家想把Ubuntu Core 16安装到Virtualbox的话,那么你可以参考我的另外一篇文章"在Virtualbox里安装Ubuntu Core 16".
在Raspberry Pi2/3 dragonboard上进行安装
大家可以参照我先前的文章"如何为树莓派安装Ubuntu Core并在Snap系统中进行编译"来安装Ubuntu Core到我们的所支持的开发板.对于英文比较好的开发者来说,可以参阅链接来安装我们的Ubuntu Core系统到开发板上.热心的Ubuntu Core开发者郝建林也创建了一篇自己的关于如何安装Ubuntu Core到QualComm的dragonboard上.请大家参阅链接.
在这里,我们介绍另外一种方法供大家使用:
1)安装snapd
如果大家还没有在Ubuntu Desktop的桌面(16.04)上安装snapd的话,就使用如下的命令来安装.这样我的系统就可以支持snap应用的安装了:
$ sudo apt update
$ sudo apt install snapd
2)把image刷入到Ubuntu Core硬件中
我们可以通过如下的命令来把image写到我们所希望的SD卡中:
$ sudo snap install --devmode --beta godd
$ sudo /snap/bin/godd ubuntu-core-16-pi2.img.xz
[this will print a message showing what devices are removable]
$ xzcat ubuntu-core-16-pi2-rc2.img.xz | sudo /snap/bin/godd - /dev/sdXX
记得在实际的操作中,我们需要把上面的sdXX换成我们自己的SD卡的设备.我们可以通过命令来查看我们的设备:
$ lsblk
比如针对我的情况,我需要换成mmcblk0.
我们把拷好image的SD卡插入到我们的树莓派板子中,然后启动.我们需要一个带有HDMI的显示器和一个键盘.对于树莓派来说,我们也可以在默认的情况下使用一个串口线.具体操作请参考我的文章"如何为树莓派安装Ubuntu Core并在Snap系统中进行编译".
对于高通的dragonboard来说,由于它没有网路连接的接口,我们可以直接在淘宝上卖一个USB的网路适配器.具体连接图如下:
为了能够使得我们的dragon board从SD卡进行启动,我们必须设置板子上的开关为:0-1-0-0.如果大家还是喜欢使用WiFi来连接自己的板子的话,大家可以参照"如何在Ubuntu Core上配置自己的WiFi"来配置自己的Ubuntu Core上的WiFi.
我们可以使用ssh进行登陆:
$ ssh <your-launchpad-account-name>@your_device_ip
当我们登陆过后,我们可以为我们的设备的账号创建一个密码,这样如果我们的设备连接上显示器和键盘的话,我们也可以通用户名及密码的方式进行登陆:
$ sudo passwd <your-launchpad-username> <your-password>
在启动的时候,你需要输入你的Ubuntu One账号的电子邮件地址,那么它将自动为你生产相应的和你账号匹配的ssh keys.如果你还没有Ubuntu SSO (Single Sign On)账号的话,请在如下的地址进行申请:
当然我们在创建完自己的账号后,千万不要忘记把自己的public ssh keys添加到你自己的账号中.这个申请的账号将被用于我们第一次启动我们的Ubuntu Core系统设置之用.如果大家还不知道如果创建自己的Ubuntu One账号,请参阅我的文章"创建Ubuntu Core账号并为Ubuntu Core设备添加新的账号".
如果你在设备上编译速度很慢(这是由于每次都会从网上重新下载包),我们可以参阅文章"如何提高编译snap应用的速度"来提高我们的编译的速度.
3)打包我们的Ubuntu Core应用
我看可以使用如下的命令:
$ snapcraft
$ snap pack <==== 修改/meta/snap.yaml后直接打包
关于Ubuntu Core开发的更多知识可以在地址"ubuntu core 开发介绍 (视频)"找到.