主题 : 获取Android源码时如何解决 复制链接 | 浏览器收藏 | 打印
级别: 侠客
UID: 117095
精华: 0
发帖: 67
金钱: 350 两
威望: 70 点
贡献值: 0 点
综合积分: 134 分
注册时间: 2015-07-14
最后登录: 2018-09-05
楼主  发表于: 2015-09-20 15:55

 获取Android源码时如何解决

背景:
在Linux环境下(虚拟机为 VirtualBox)获取Android源代码的时候,
使用命令:repo init -u git://android.git.kernel.org/platform/manifest.git 时提示下列错误:
fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)

机器以及软件环境:
公司内网+代理+VirtualBox+Linux

发生问题的原因:
用一句话来概括就是联网出现问题,因为仅仅在网络设定里面设定代理还不够,我们需要用某种fanqiang工具来实现代理的操作。

根据以上原因重新整理出步骤:
1、安装所需软件:
sudo apt-get install git-core curl

2、设置工具repo的存放目录并将其加入环境变量内:
mkdir ~/bin
PATH=~/bin:$PATH

3、下载repo的脚本并将其模式改为可执行:
curl http://android.git.kernel.org/repo > ~/bin/repo
chmod a+x ~/bin/repo

4、创建下载源代码的目录
mkdir ~/source
cd ~/source

5、开始repo操作更多学习交流可以加Q群2715307336
repo init -u git://android.git.kernel.org/platform/manifest.git
如果是在正常网路不用代理的情况下一般repo都会成功。
但由于公司特殊的网络环境,导致在repo的时候发生fatal: Unable to look up android.git.kernel.org (port 9418) (Name or service not known)的问题。

这个时候可继续以下的步骤能解决这个问题:
-------------------------------------------------------------------------
1、安装corkscrew
sudo apt-get install corkscrew

2、在任意目录建立任意文件
例如:    ~/bin/proxy-hoge-user.sh
添加如下内容并保存:
1 #!/bin/bash
2  CORKSCREW=`which corkscrew`
3  $CORKSCREW proxy.hoge.com 8080 $1 $2 ~/bin/user-pwd
其中:
proxy.hoge.com为代理的服务器,
8080为代理的端口,
~/bin/user-pwd为存放代理的用户名和密码的文件。
需要根据自己的情况进行设定。

3、新建存放代理的用户名和密码的文件
~/bin/user-pwd
格式为
<username>:<password>
例如 user:pwd

4、改文件属性
chmod 755 ~/bin/proxy-hoge-user.sh
chmod 600 ~/bin/user-pwd

5、添加环境变量GIT_PROXY_COMMAND
sudo vi ~/.bashrc
添加如下命令:
export GIT_PROXY_COMMAND=~/bin/proxy-hoge-user.sh
保存退出。
source ~/.bashrc