Fedora13
下载android
代码总结
经过很长时间的尝试,终于下载到了android
的代码,尝试包括安装fedora
虚拟机、安装ubuntu
虚拟机,使用windows
系统的cygwin
,现在终将几种方式和问题汇总一下。
l
windows
下的cygwin
方式,cygwin
是windows
下的一种linux
虚拟方式,使用这种方式下载需要安装很多linux
下的程序,很繁琐,最终由于实在找不全软件,以失败告终。
l
Ubuntu
系统,虽然是google
推荐的系统,但据说不是开发类的系统,里面的开发库比较少,属于普通用户入门级的系统。
l
最终选择使用fedora 13
虚拟机。
对于代码的下载有两种方式,既HTTP
模式和GIT
模式,我们在中国一般GIT
模式都不稳定,所以使用HTTP
模式,但网上的一些资料讲解的下载代码时修改成HTTP
模式的方式都不全,使用HTTP
模式下载代码,需要将下载过程中的一些脚本的GIT
修改为HTTP
。
我是把repo
下载到我的用户目录下,在用户目录下创建了一个android
目录存放代码的方式下载的。
下载步骤:
1.
在vmware7
下安装fedora 13
。
2.
安装相关软件,例如Git
等
$ sudo
apt-get install git-core gnupg flex bison gperf build-essential zip curl
sun-java5-jdk zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386
lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev
lib32z-dev
3.
安装Repo
Repo
其实就是一个脚本,方便用户下载android
代码,可以直接在下面的网址打开该脚本,保存网页内容为repo
文件就可以,也可以使用curl
工具下载。
curl http
://android.git.kernel.org/repo >~/repo
4.
给repo
可执行权限
chmod a+x ~/repo
5.
修改repo
内容,把“git:”
改成“http:”
REPO_URL='http
://android.git.kernel.org/tools/repo.git'
6.
新建~/android
目录,用repo
init
命令即可。
mkdir ~/android
7.
初始化代码目录repo init
repo init
-u http
://android.git.kernel.org/platform/manifest.git
如果下载特定android
版本,例如android 2.2
版本,则在脚本后面跟“-b froyo
”。
repo init
-u http
://android.git.kernel.org/platform/manifest.git
-b froyo
中间会问你的账户和邮箱
Your
Name
[root]:
输入账户名
Your Email
[root@qinlicang.(none)]:
输入邮箱
Your
identity is:
账户名 <
邮箱>
is this
correct [y/n]? y
问你是否确认
Testing
colorized output (for 'repo diff', 'repo status'):
black
red
green
yellow
blue
magenta
cyan
white
bold
dim
ul
reverse
Enable
color display in this user account (y/n)? y
问你的设置是否正确
repo
initialized in ~/android
显示同步完成
最后会看到
repo initialized in /android
这样的提示,就说明本地的版本库已经初始化完毕。
8.
修改.repo/manifest.xml
,把“git”
改成“http”
修改
.repo/manifest.xml
(或manifests/default.xml
)如下
fetch=http://android.git.kernel.org/
如果看不到”.repo”
目录,选择文件浏览器 查看 菜单中的“显示隐藏文件”菜单。
9.
同步(其实是正式下载,前面init
只是下载了具体的路径和依赖文件)
repo sync
注意,该命令其实是真正的下载代码,很慢,我下载了两天才下载完成,中间会由于网络的瞬断,造成下载代码的进程停在一个位置没有反应。你可以按“ctrl+c
”结束,再重新执行repo sync
。repo
是支持断点续传的。
只要你看到“Fetching project % (81/159)
”中的百分比在不断的增长,就说明你还在继续下载,知道“Fetching project 100%
”,并且后面有check out
则说明你已经完成了代码的下载。
开始我以为网络断是由于防火墙的问题,所以关闭了防火墙
关闭Fedora
的防火墙命令
重启后生效
开启: chkconfig iptables on
关闭: chkconfig iptables off
或者 /sbin/chkconfig
--level 2345 iptables off
即时生效,重启后失效
service
方式
开启: service iptables start
关闭: service iptables stop
iptables
方式
查看防火墙状态:
/etc/init.d/iptables status
暂时关闭防火墙:
/etc/init.d/iptables stop
重启iptables:
/etc/init.d/iptables restart
错误:
$ repo sync
FATAL:
failed to begin relaying via HTTP.
fatal: The
remote end hung up unexpectedly
error:
Cannot fetch platform/bionic
是由于没有修改manifest.xml
删除目录
rm
-rf
目录名字
-r
就是向下递归,管理有多少级目录,一并删除
-f
就是直接强行删除,不作任何提示的意思