我在先前的文章"Ubuntu SDK 安装"中已经详细地介绍了如何安装Ubuntu SDK.但是很多的开发者可能在最后安装SDK所需要的chroots时候会失败.这里面的原因是SDK在安装chroots时,它不支持断点续传.也就是说在安装chroots时,由于网路的原因或某种原因,造成chroots的安装失败时,我们需要再次重新安装它.一般我们需要删除现有的已经安装失败的chroots.每个chroot(armhf及i386)在安装后的大小约为1.6G.这篇文章详细介绍如何快速地安装我们的Ubuntu SDK.开发者可以观看Ubuntu SDK安装视频得到更多的关于SDK安装的信息.
1)安装Ubuntu SDK
首先,我们可以安装好我们的Ubuntu桌面系统.我们一般推荐安装最新的Ubuntu桌面系统,比如目前即将面世的16.04 LTS版本.如果已经有一个Ubuntu桌面系统,我们可以它通过如下的命令来升级我们的桌面系统到最新的系统:
$ update-manager -d
依照现有的文章"Ubuntu SDK 安装"中介绍的那样,安装最新的Ubuntu SDK.
$sudo apt-get update
$sudo apt-get upgrade
$sudo apt-get dist-upgrade
$sudo add-apt-repository ppa:ubuntu-sdk-team/ppa
$sudo apt-get install ubuntu-sdk
$sudo apt-get install ubuntu-sdk-dev ubuntu-sdk-ide
$sudo apt update && sudo apt dist-upgrade
在上面的先开始的命令中,我们先把我们的Ubuntu桌面系统更新到最新的状态,这样使得我们的最新的SDK依赖的包都被安装到系统中以使得后面的SDK的安装能够顺利进行.否侧在我们的实际安装中,如果有的包不在系统中或是最新的,那么后面SDK的安装可能失败.
在这个步骤中,由于我们使用了ppa,所有它可以支持断点续传.如果失败了,它可以在下次安装时再次从上次中断的地方继续下载安装.一般来说我们并不担心这一步的失败.对于有些开发者来说,可以尝试使用VPN的方法来提高安装的速度.成功安装后,我们可以在dash中找到我们所需要的Ubuntu SDK:
对于网路情况不是很好的开发者来说,请直接跳到下面的第三节下载已经成功安装过的chroots来安装而不需要下面的第二步.
2)安装chroots
liuxg@liuxg:~$ adb shell
phablet@ubuntu-phablet:~$ click framework list
- armhf chroot的安装
$sudo click chroot -aarmhf -f ubuntu-sdk-15.04 create
如果安装失败,我们必须使用如下的命令删除已经安装的半成品,然后再用上面的命令来安装我们的chroot.
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
- i386 chroot的安装
$sudo click chroot -ai386 -f ubuntu-sdk-15.04 create
如果安装失败,我们必须使用如下的命令删除已经安装的半成品,然后再用上面的命令来安装我们的chroot.
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
3)直接下载已有的chroots进行安装
删除任何已经安装或安装不成功的chroots
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
通过上面的方法,我们确保在我们的桌面系统中没有任何我们曾经安装失败后残存的chroots文件.
下载我们上传的chroots
- chroot.d:
liuxg@liuxg:/etc/schroot/chroot.d$ tree
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
在实际的拷贝中,我们需要使用sudo来拷贝的方法这两个文件.这里的liuxg是我自己的电脑liuxg上用户名.在你们自己安装时,这个名字应该是你们自己的用户名.打开这个两个文件,同样我们需要使用sudo来编辑这两个文件,比如click-ubuntu-sdk-15.04-armhf:
[click-ubuntu-sdk-15.04-armhf]
description=Build chroot for click packages on armhf
users=root,liuxg
root-users=root,liuxg
source-root-users=root,liuxg
type=directory
profile=default
setup.fstab=click/fstab
# Not protocols or services see
# debian bug 557730
setup.nssdatabases=sbuild/nssdatabases
union-type=overlayfs
directory=/var/lib/schroot/chroots/click-ubuntu-sdk-15.04-armhf
我们可以使用vi或gedit来编辑上面的文件.替换上面的"liuxg"为自己电脑上的用户名.然后存下来.我们使用同样的方法来对click-ubuntu-sdk-15.04-i386进行同样的操作.
- chroots.tar.gz
liuxg@liuxg:/var/lib/schroot/chroots$ sudo tar -xvf chroots.tar.gz
liuxg@liuxg:/var/lib/schroot/chroots$ tree -L 1
.
├── click-ubuntu-sdk-15.04-armhf
└── click-ubuntu-sdk-15.04-i386
同样上面的"liuxg"是我自己的用户名.在实际应用中,它应该是你自己电脑上的用户名.
- 检查我们已经安装好的chroots
liuxg@liuxg:~$ schroot -l
chroot:click-ubuntu-sdk-15.04-armhf
chroot:click-ubuntu-sdk-15.04-i386
source:click-ubuntu-sdk-15.04-armhf
source:click-ubuntu-sdk-15.04-i386
如果我们已经看到上面的显示,表明我们的安装已经是成功的.
- 打开我们的Ubuntu SDK来检查我们的chroots
4)最后一招
ubuntu-sdk-api-15.04-i386_15.04-20160122~0ubuntu1~0xenial1_amd64.deb (448.8 MiB)
ubuntu-sdk-api-tools_15.04-20160122~0ubuntu1~0xenial1_all.deb (10.9 KiB)
$sudo click chroot -a armhf -f ubuntu-sdk-15.04 destroy
$sudo click chroot -a i386 -f ubuntu-sdk-15.04 destroy
$ sudo dpkg -i ubuntu-sdk-api-15.04-i386_15.04-20160122-0ubuntu1-0xenial1_amd64
$ sudo dpkg -i ubuntu-sdk-api-tools_15.04-20160122-0ubuntu1-0xenial1_all.deb
$ sudo dpkg -i ubuntu-sdk-api-15.04-armhf_15.04-20160122-0ubuntu1-0xenial1_amd64.deb
$ schroot -l
我们也可以在我们的SDK的界面中进行更新的操作.当然这依赖于我们的网路速度 :)