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 就是直接强行删除,不作任何提示的意思