您的位置:首页 > 移动开发 > Android开发

如何使用代理帐号下载Android源代码

2010-07-22 17:29 489 查看
如何使用公司代理帐号下载Android源代码:

网络上介绍了很多通过代理帐号下载源码的方法,可能由于开源工具不断

更新的关系,能够参考到的都没有尝试成功,不过通过不断摸索终于找到问题成功下载代码,现将经验共享如下:

环境:Ubuntu 9,公司代理上网,需要帐号和密码;

1.安装git,这里有源代码安装和 packageManager两种安装方式,对于源代码安装的方式比较复杂,参考国外网站反复尝试未果。

  于是通过ubuntu立得包(packageManager)安装git-core1.6.0.4,安装之前将系统内git彻底卸载干净;

2.git安装好之后,安装curl(apt-get 或者 通过立得包安装);

3.配置git 的http 访问设置:

git config --global http.proxy http://login:password@our-proxy-server:8080
login   代理帐号;

password  代理密码;

our-proxy-server 代理服务器;

8080  代理 端口;

按照上面的设置自己的代理;

运行完毕之后,会在    ~/.gitconfig文件中追加如下内容:

[http]

        proxy = http.proxy http://login:password@our-proxy-server:8080
构建三个文件:

文件1:socks-gw.sh

#!/bin/sh

# /home/qiu/android/bin/socks-gw.sh

# This script connects to a HTTP proxy using connect.c

connect -H wwwgate.freeshell.net:8080 $@

文件2:socks-ssh.sh

#!/bin/sh

# /home/qiu/android/bin/socks-ssh.sh

ssh -o ProxyCommand="/home/qiu/android/bin/socks-gw.sh %h %p" $@

文件3:proxy.sh

#!/bin/sh

# /home/qiu/bin/proxy.sh

# http proxy setting

export HTTP_PROXY=http://login:password@our-proxy-server:8080

export http_proxy=$HTTP_PROXY

# set git to use ssh over http proxy

export GIT_SSH="/home/qiu/android/bin/socks-ssh.sh"

export GIT_PROXY_COMMAND="/home/qiu/android/bin/socks-gw.sh"

增三个文件的运行权限。 (以上内容转的是别人整理的,我拷贝过来的)

在repo运行之前,运行  ./proxy.sh

4.此时git已经能够通过该帐号连接网络(注意前面使用的http协议,而不是git):

  git clone http://android.git.kernel.org/platform/manifest.git
  不是很熟悉git,网络上介绍说上面的步骤会下载代码,但是我尝试后,发现之有一个default.xml文件,其他代码文件一个都没看到;

  但是证明网络通了。

5. 下面下载repo, 终端中:curl http://android.git.kernel.org/repo > repo

  然后 赋予repo运行权限 ;

  下载 connetc.c,然后编译;

  $ curl http://www.meadowy.org/~gotoh/ssh/connect.c > connect.c

  $ gcc -o connect connect.c

6.将repo所在目录加入PATH环境变量中;

(前6点均参考网络)

7.由于repo执行前,首先将自己作为一个git项目将用到的python代码下载下来,但是由于当前走的是http协议,repo脚本要修改下:

找到下面这行:

REPO_URL='git://android.git.kernel.org/tools/repo.git'

修改为:

REPO_URL='http://android.git.kernel.org/tools/repo.git'

原因是走git协议,代理不通;

8.创建一个空目录,例如下载Android 2.1,

 repo init -u http://android.git.kernel.org/platform/manifest.git -b eclair

 会看到initialize成功的消息;

9.然后运行repo sync,但是不做修改的话,sync会出现网络timeout错误;

  在当前目录有一个隐藏目录 .repo, .repo/manifests/default.xml中,

<remote  name="korg"

           fetch="git://android.git.kernel.org/"

           review="review.source.android.com" />

中,git修改为 http

<remote  name="korg"

           fetch="http://android.git.kernel.org/"

           review="review.source.android.com" />

10.运行 repo sync,如果顺利的话可以看到网络有动作了,恭喜;

补记:如果网络没问题的情况下,下载仍然出现timeout,就要观察是否走的是git协议,如果是,那么修改配置文件更改为http协议。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息