[转]如何下载tizen源码(图文教程)?
http://blog.csdn.net/flydream0/article/details/8996654
当前tizen发布的最新源码版本是2.1,本文将以图文教程讲述如何下载tizen源码,关于如何编译后述文章将讲解。
1 注册及设置gerrit
1.1注册邮箱
首先打开https://source.tizen.org/,在右上角点击注册一个你的用户,成功注册好后,再点击https://review.tizen.org/gerrit登陆gerrit,将出现如下界面:
以之前注册好的用户名以密码登陆。
注:tizen源码是用gerrit来管理的。
登陆后的界面如下:
点 击右上角的Settings,然后在左边点击Contact Information在显示的界面上添加自己的邮箱,Gerrit系统会自动发送一件验证邮件到你所指定的邮箱中,点击邮件中给出的验证链接进行验证, 难证通过后,表示你的Gerrit帐户已经激活,可以正常使用了。
2 配置访问Gerrit的SSH
2.1 安装ssh工具
首先得安装ssh工具:
- $ sudo apt-get install ssh
安装ssh成功后会在~/目录下自动生成.ssh隐藏目录.
2.2 生成RSA密钥
通过如下指令生成RSA密钥:
- ~/.ssh$ ssh-keygen -t rsa -C flydream0
其中flydream0为提示内容,可以随便写点内容,一般写做自己的用户名就可以了.
系统提示:
- Generating public/private rsa key pair.
- Enter file in which to save the key (/home/arthur/.ssh/id_rsa):
系统提示保存密钥的保存地址,直接按回车键,默认保存到~/.ssh目录下。
然后系统回提示你设置一个你的密码,两次设置无误后会出现如下界面:
2.3 配置SSH配置文件
进入~/.ssh目录下,创建config文件,将如下内容拷贝进去:
- Host tizen
- Hostname review.tizen.org
- IdentityFile ~/.ssh/id_rsa
- User flydream0
- Port 29418
- #The line below is optional configuration applicable to Ubuntu and openSUSE.
- #Add when using proxy, otherwise, skip it.
- #ProxyCommand nc -X5 -x <Proxy Address>:<Port> %h %p
- #The line below is optional configuration applicable to Fedora.
- #Add when using proxy, otherwise, skip it.
- #ProxyCommand nc --proxy-type socks4 --proxy <Proxy Address>:<Port> %h %p
其中flydream0替换掉你之前注册的Gerrit用户名,不要包含尖括号.
2.4 上传SSH公钥到Gerrit
打开~/.ssh目录下的id_rsa.pub文件:
- $vim ~/.ssh/id_rsa.pub
复制里边的全部内容,然后返回到gerrit的设置界面,点击左边的SSH Public Keys,然后添加公钥,如下图所示:
将你的公钥添加到gerrit中,这样的话你就可以通过git指令获得gerrit中的tizen源码了。
2.5 验证SSH连接
执行如下指令:
- $ ssh tizen
将会提示你输入密码:
输入你之前设置好的SSH密码,然后回车,如果连接正常,将会出现如下界面:
这就表示SSH设置是OK的。
3 配置git
首先得确保安装了git,如果未安装,则执行如下指令进行安装:
- $ sudo apt-get install git
安装完git后得配置git的全局用户名及邮箱:
- $ git config --global user.name flydream0
- $ git config --global user.email bumaoxia204@163.com
将flydream0和buamoxia204@163.com替换成你自己的gerrit用户名及邮箱。
然后你可以通过如下指令看到你配置好的内容:
- arthur@arthur-laptop:~/.ssh$ git config --global -l
- color.ui=auto
- user.name=flydream0
- user.email=bumaoxia204@163.com
- arthur@arthur-laptop:~/.ssh$
4 下载并配置repo
tizen源码下载借鉴了Android源码下载的方式,因此,我们首先将 Androiod源码下载工具repo下载并设置好。
在~/目录下创建bin目录:
- $cd ~/
- $mkdir bin
- $PATH=~/bin:$PATH
- $cd bin
安装curl工具:
- $sudo apt-get install curl
然后下载repo工具:
- $curl https://dl-ssl.google.com/dl/googlesource/git-repo/repo > ~/bin/repo
- $chmod a+x ~/bin/repo
这里就下载并配置好了repo工具.
5 下载tizen源码
5.1 在Gerrit中查看tizen源码
在Gerrit中左上角点击projects,projects字下面的List,然后就会看到tizen源码下的所有project,如下所示:
可以发现,tizen下的工程太多了,那么如何下载呢?下载哪些呢?
5.2 初始化repo环境
在浏览器中查找manifest,你会发现有一个工程为:tools/manifest/tizen-2.0-main
我们就先将这个工程下载下来,然后利用这个manifest文件,用 repo工具同步所有tizen源码文件。
我们先建立一下tizen目录:、
- $cd ~/
- $mkdir tizen
- $cd tizen
首先查看自己Gerrit的地址:
- $ ssh tizen
- **** Welcome to Gerrit Code Review ****
- Hi arthur, you have successfully connected over SSH.
- Unfortunately, interactive shells are disabled.
- To clone a hosted Git repository, use:
- git clone ssh://flydream0@review.tizen.org:29418/REPOSITORY_NAME.git
- Connection to review.tizen.org closed.
得出tizen源码链接地址为ssh://flydream0@review.tizen.org:29418/......
然后使用manifest/tizen-2.0-main初始化repo下载环境:
- $ repo init -u ssh://flydream0@review.tizen.org:29418/tools/manifest/tizen-2.0-main
将上面的flydream0替换成你自已的Gerrit用户名,也可以用 $repo init -u ssh://flydream0@review.tizen.org:29418/tools/mainifest/tizen-2.0-main.git
有没有git后缀对repo来说都是一样的。
接下来有可能要你输入ssh的密码。再接下来会将tizen源码的环境同步到本地,在当前目录下将会生成.repo隐藏目录。如下图:
注意:这一步下载有点难度,有很大概率会出现如下错误提示:
- fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle
- fatal: error [Errno 101] Network is unreachable
这个是由于网络原因造成,也有人说是天朝神力所致。但不管怎样,多试几次应该会成功的。一旦失败后,必须先检查当前目录下是否存在.repo子目录($ls -al),一旦存在,则删除它(rm -rf .repo/),然后在重新尝试。
5.3 修改manifest.xml清单文件
接下来打开./.repo/manifests/default.xml清单文件:
- $ vim .repo/manifests/default.xml
将fetch后面的内容修改为:"ssh://flydream0@review.tizen.org:29418",review后面的内容修改为:"https://review.tizen.org/gerrit/"
如下图:
同样将flydream0修改为你自己的Gerrit用户名.
5.4 同步tizen源码
最后下载源码:
- $repo sync -j4
下载界面如下:
下载过程是一个漫长而痛苦的等待过程,之所以说痛苦,那是因为中途还可能会出错,得不断重新输入指令,最后下载完的时间取决于各自的机器与网络速度。
好了,tizen源码的下载就讲到这了,下一章我将继续讲述如何编译tizen 源码及如何生成镜像文件,敬请关注!
6 后续补充
上述方法没有错,但是后来发现用此方法下载时老是出错,错误信息大概如下:
- Fetching projects: 1% (10/915) fatal: '/adaptation/devices/alsa-scenario-files-0.0': not a Gerrit project
- fatal: The remote end hung up unexpectedly
- fatal: '/adaptation/devices/alsa-scenario-files-0.0': not a Gerrit project
- fatal: The remote end hung up unexpectedly
- error: Cannot fetch adaptation/devices/alsa-scenario-files-0.0
发现原来是清单文件的问题,清单文件的链接内容是已经过时的了,因此需要找一个比较新的清单文件来替换现有的清单文件。
打开http://download.tizen.org/链接,会发现这里边有tizen发布的各种版本的镜像文件,找一个比较新的,比如:
在此目录下包含tizen镜像文件tizenxxx.raw.bz2,还有其对应的清单文件ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml,这个清单文件对我们来说非常重要,因为它包含了此tizen版本对镜像文件对应的所有资源链接信息,这样一来,我们就可以利用此清单文件下载到所有源文件!
6.1 下载清单文件
如里你是用firefox浏览单打开的此网页,那么可以右点击ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml,然后选择cope link location,然后粘贴到wget后面:
- $ wget http://download.tizen.org/releases/daily/2.0alpha/ivi-wayland/tizen-2.0alpha_20130522.2/images/ivi-wayland-release/ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml
这样就将此清单文件下载到当前目录下了,当然你也可以用其它方面下载此清单文件。
6.2 修改清单文件的内容
用vim打开上面下载的清单文件:
- $ vim ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml
同5.3节的步骤一样,将fetch后面的内容修改成你自己的Gerrit地址:
当然上述的flyream0需要修改成你自己的Gerrit用户名.
6.3 替换现有的清单文件
先备份好现有的清单文件:
- $ cp .repo/manifests/default.xml default.xml.bak
然后再替换它:
- $ cp ivi-wayland-release-tizen-2.0alpha_20130522.2.manifest.xml .repo/manifests/default.xml
6.4 同步tizen源码
- $repo sync -j4
再次进入漫长而痛苦的等待过程,这次下载不再出现中途会出现错误的情况了。
下载成功后的界面如下:
有关如何编译tizen源码请参考:http://blog.csdn.net/flydream0/article/details/9004746一文.
好了,祝大家一切顺利。
[转]如何下载tizen源码(图文教程)?的更多相关文章
- [转]如何编译tizen源码(图文教程)?
http://blog.csdn.net/flydream0/article/details/9004746 前一篇文章已经介绍了如何下载tizen源码(http://blog.csdn.net/fl ...
- 如何编译tizen源码(图文教程)?
前一篇文章已经介绍了如何下载tizen源码,下面我将继续讲述如何编译源码. 1 下载安装gbs编译工具 tizen源码是用gbs工具进行编译的,因此我们首先得将此工具下载下来,并且设置好. 下面的Ub ...
- Ubuntu12.04 64bit版本下载Android源码完整教程
首先去官网http://source.android.com/source/initializing.html可以看到完整的安装教程.不过一般情况下,按照这个教程是无法一步到位的,因为中途肯定会遇到很 ...
- Greenplum 源码安装教程 —— 以 CentOS 平台为例
Greenplum 源码安装教程 作者:Arthur_Qin 禾众 Greenplum 主体以及orca ( 新一代优化器 ) 的代码以可以从 Github 上下载.如果不打算查看代码,想下载编译好的 ...
- Mysql 源码编译教程贴
题外话:这是一篇教程贴,不仅学的是mysql的编译,还是一些编译的知识.我也是一个菜鸟,写一些感悟和心得,有什么问题可以批评指正,谢谢! 如果只是为了安装请移到我的另一篇安装贴: Mysql安装贴 环 ...
- 下载android4.4.2源码全过程(附已下载的源码)
今天在下载andriod源码,特来与大家分享一下我的经验.当然,网上教下载源码的教程较多,本文主要针对在GFW下下载源码出现的各种问题的解决方法. 1.首先安装下载客户端git , curl. 命令如 ...
- 通过清华大学镜像下载Android源码并编译源码
之前看源码都是在Windows下用SourceInsight看,虽然达到了研究源码的效果,但终究还是有遗憾...趁着周末,准备在Ubuntu虚拟机上下载编译源码. 之前下源码时,有了解一些Androi ...
- LLVM源码安装教程
LLVM4.0源码安装教程 环境:ubuntu16.04 llvm-4.0 clang-4.0 步骤: 1.依赖库安装,注意llvm的编译对gcc版本和cmake版本有要求,请根据版本进行匹配 $ s ...
- 直播平台源码搭建教程:微信小程序中的直播如何去掉水印
直播平台源码搭建教程:微信小程序中的直播如何去掉水印 本文与大家分享一下直播平台源码搭建教程,如何去掉直播视频的水印 var services = require('../../lib/service ...
随机推荐
- 28.怎样在Swift中实现单例?
1.回忆一下OC中的单例实现 //AFNetworkReachabilityManager中的单例,省略了其他代码 @interface AFNetworkReachabilityManager : ...
- js ajax上传图片到服务器
$("#up_goods_pic").on('change',function(){ var file = this.files[0]; var url = webkitURL.c ...
- Python常用网页字符串处理技巧
首先一些Python字符串处理的简易常用的用法.其他的以后用到再补充. 1.去掉重复空格 s = "hello hello hello" s = ' '.join(s.split( ...
- 3DTouch-ShortcutItem - iOS9 - xcode7
据说苹果某个神秘的团队闭门潜心研发多年的3DTouch终于,应用在iOS9上,且公开了API. 在系统主界面用力按压 APP 图标,如上会出现自定义菜单 有两种方法可以实现一.代码(这种方法也是可以动 ...
- PostgreSQL中的AnyArray例子
http://www.joeconway.com/presentations/function_basics.pdf CREATE FUNCTION myappend(anyarray, anyele ...
- Class hierarchy of UIResponder as well as subclasses of UIView and UIControl
When you were dragging in your label and your button to this view, you were adding them as subviews. ...
- java学习笔记(3)——面向对象
this关键字 this是当前对象的引用,是运行期间当前对象本身. 可以使用this明确的访问当前对象的属性或者方法,类似于“我” this()可以调用本类的其他构造器,可以使用构造器的重用简化代码的 ...
- Android 实现自动接听和挂断电话功能
添加权限 <uses-permission android:name="android.permission.CALL_PHONE"/> <uses-permis ...
- [终极精简版][图解]Nginx搭建flv mp4流媒体服务器
花了我接近3周,历经了重重问题,今日终于把流媒体服务器搞定,赶紧的写个博文以免忘记... 起初是跟着网上的一些教程来的,但是说的很不全面,一些东西也过时不用了(比如jwplayer老版本).我这次是用 ...
- Android中的Handler的具体用法
Android UI操作并不是线程安全的并且这些操作必须在UI线程中执行.Android利用Handler来实现UI线程的更新的. Handler是Android中的消息发送器,其在哪个Activit ...