我在先前的文章"Ubuntu SDK 安装"中已经详细地介绍了如何安装Ubuntu SDK.但是很多的开发者可能在最后安装SDK所需要的chroots时候会失败.这里面的原因是安装chroots时,它不支持断点续传.也就是说在安装chroots时,由于网路的原因或某种原因,造成chroots的安装失败时,我们需要再次重新安装它.一般我们需要删除现有的已经安装失败的chroots.这篇文章详细介绍如何快速地安装我们的Ubuntu
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
在上面的先开始的命令中,我们先把我们的Ubuntu桌面系统更新到最新的状态,这样使得我们的最新的SDK依赖的包都被安装到系统中以使得后面的SDK的安装能够顺利进行.否侧在我们的实际的安装中,如果有的包不在系统中或是最新的,那么后面SDK的安装可能失败.
在这个步骤中,由于我们使用了ppa,所有它可以支持断点续传.如果失败了,它可以在下次安装时再次从上次中断的地方继续下载安装.一般来说我们并不担心这一步的失败.成功安装后,我们可以在dash中找到我们所需要的Ubuntu SDK:
对于网路情况不是很好的开发者来说,请直接跳到下面的第三节下载已经成功安装过的chroots来安装而不需要下面的第二步.
2)安装chroots
在这个步骤中,由于它不支持断点续传,所有它是最容易导致安装失败的环节.如果我们的网路情况好的话,我们可以直接在我们的命令行中打入如下的命令来安装我们的chroots.在这个步骤中,我们可以来安装我们所需要版本的chroots.我们可以通过如下的方式找到我们手机所有支持的framework:
[email protected]:~$ adb shell [email protected]:~$ click framework list
一般来说在我们开发时,会选择我们所需要的framework(相当于iOS的版本).如果我们所定义的framework在手机中不存在,那么我的应用在手机中将不能被运行.目前我们建议使用15.04的chroot.
- armhf chroot的安装
我们可以通过如下的命令来安装我们的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的安装
我们可以通过如下的命令来安装我们的armhf 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上传到我们的百度网盘供大家下载.等下载完后,我们再把它们解压到我们所需要的路径中.这样的安装好处是,我们可以使用各种方法进行断点下载我们打包过的chroots,并成功拷贝到相应的目录中.这个方法的缺点是:chroots可能不是最新的.开发者在以后的SDK中可以进行自动更新或手动更新我们的chroots.不过一般来说,这个chroots已经够用即使在不更新的情况下.
删除任何已经安装或安装不成功的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
开发者可以到我们的网址下载我们已经上传的chroots.这个chroots是到上传时间最新的chroot.对于绝大多数的应用开发应该是没有任何问题的.当然开发者可以在以后的SDK中进行更新.
就如同我们上面显示的那样.在我们上次的chroots中,有两部分文件.
- chroot.d:
这个是需要安装到/etc/schroot/chroot.d目录中的文件.安装后的文件架构是:
[email protected]:/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
我们把这个文件拷贝到/var/lib/schroot/目录,然后我们通过如下的方法来解压缩:
[email protected]:/var/lib/schroot/chroots$ sudo tar -xvf chroots.tar.gz
解药缩后的文件架构为:
[email protected]:/var/lib/schroot/chroots$ tree -L 1 . ├── click-ubuntu-sdk-15.04-armhf └── click-ubuntu-sdk-15.04-i386
同样上面的"liuxg"是我自己的用户名.在实际应用中,它应该是你自己电脑上的用户名.
- 检查我们已经安装好的chroots
我们可以通过如下的方法来检查我们的chroots的安装是否已经成功:
[email protected]:~$ 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
在SDK中,我们怎么来检查我们已经安装过的chroots是否已经成功呢?我们首先打开我们的SDK,然后点击菜单:
Tools ==> Options ==> Ubuntu ==>Click
如果我们已经看到我们的chroot已经在上面所示的图片中,表明我们的chroot是已经安装成功的.我们可以点击上面的update来更新我们的chroots到最新状态.当然我们也可以点击Maintain来添加或删除我们所需要的模块或库.
- 检验我们已经安装的Ubuntu SDK
我们可以通过文章"创建第一个Ubuntu for phone应用"来检查我们的SDK的安装是否成功.如果一切顺利,我们可以把我们的应用部署到我们的设备或模拟器中.具体安装模拟器的方法,可以参阅文章"Ubuntu
SDK 安装".这里将不再重复.