如何从国内镜像获取android源代码

如何从国内镜像获取android源代码,第1张

首先按帮助中的步骤下载repo工具:

[plain] view plain copy print?

curl https://storage-googleapis.lug.ustc.edu.cn/git-repo-downloads/repo >~/bin/repo

此时查看下载下来的repo文件可以发现其中的REPO_URL已经指向中科大镜像的地址,因此应该不需要修改:

[plain] view plain copy print?

REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'

接下来运行如下命令初始化仓库

[plain] view plain copy print?

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest

发现没有反应,很长时间后应该是超时才退出,报错说无法访问https://gerrit-googlesource.lug.ustc.edu.cn/git-repo/clone.bundle

把这个地址放到浏览器上尝试发现也是超时无法访问,最后好像还是指到google的官网去了,感觉应该是因为缺了什么东西,没仔细研究。

但我发现中科大镜像的Git-repo实际上是可以正常访问的,因此最后使用如下方法:

1. 使用git clone命令直接从中科大镜像下载repo工具:

[plain] view plain copy print?

git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo

git clone成功后可以在git-repo目录下看到repo以及其他相关的脚本。

修改PATH环境变量将git-repo目录加入PATH

2. 修改REPO_URL

此时查看git clone下来的repo文件可以发现其中的REPO_URL还是指向google官网的,因此需要修改该文件指向中科大镜像:

[plain] view plain copy print?

REPO_URL = 'https://gerrit-googlesource.lug.ustc.edu.cn/git-repo'

3. 初始化仓库

修改完repo文件后再运行repo init命令初始化仓库就可以成功了:

[plain] view plain copy print?

repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest

以后就可以使用repo sync命令同步源代码了,速度很快。

你试试看看

在ubuntu 10.04 x64系统上。

第一步,安装git和repo

apt-get install git-core

curl http://android.git.kernel.org/repo >/bin/repo

chmod a+x /bin/repo

第二步,建立git server

建立一个git server发布目录

mkdir /pub/gittree

安装服务器软件

apt-get install git-daemon-run

查看服务器运行情况

ps -ef|grep git

看到

119 24126 24124 0 09:36 ?00:00:00 /usr/lib/git-core/git-daemon --verbose --base-path=/var/cache /var/cache/git

修改服务器配置

vi /etc/sv/git-daemon/run

相关内容改成下面这样的

/usr/lib/git-core/git-daemon --verbose --export-all --base-path=/pub/gittree /pub/gittree

重新启动这个服务,注意,它是由sv - control and manage services monitored by runsv(8)操作的。

sv stop git-daemon

sv start git-daemon

再用ps -ef|grep git查看,改动的配置是否生效。

第三步,镜像代码库到本地目录,

mkdir /pub/gittree/android-mirror

cd /pub/gittree/android-mirror

repo init -u git://android.git.kernel.org/platform/manifest.git --mirror

第三步,镜像代码库到本地目录,

mkdir /pub/gittree/android-mirror

cd /pub/gittree/android-mirror

repo init -u git://android.git.kernel.org/platform/manifest.git --mirror

repo sync

要等很长时间,等它下载完成。如果中间有错误发生,下载中断,则要重做repo sync,会续传。

第四步,从本里代码库里取出代码,

另启一个终端窗口,

cp /bin/repo /bin/repo-local

vi /bin/repo-local

将里面的git://.....改成git://127.0.0.1/android-mirror/ 指向本地服务。

mkdir /pub/test

cd /pub/test

repo-local init -u git://127.0.0.1/android-mirror/platform/manifest.git -b froyo 这里以froyo为例下载一个分支版本。注意,这里不用repo。 git url的写法,可能有变,如在ti公司omap代码库里,就不尽相同。

vi .repo/manifests/default.xml

修改其中的fetch="git://127.0.0.1/android-mirror/" 指向本地代码库。

repo-local sync ,这里,不用repo。

mirror下来的代码库,并不一定会全,会出现某个project找不到的情况,要去补充下载。

回到之前的那个mirror的终端窗口,当前目录在 /pub/gittree/android-mirror

vi .repo/manifests/default.xml

照着样子增加一行project,写上需要的名字,保存退出。

repo sync + project name ,project的名字,就是刚在default.xml里看到的。

再回到test目录下,继纽 repo-local sync

发生过,在android-mirror里sync时,报错,指出manifest里有uncommited change,这时,将.repo目录删去,重新repo init...一次,再repo sync,原来下载的代码还在,有更新的会补充下载

一、安装http服务器

这里使用Nginx服务器提供http服务

关于Nginx服务器搭建,参考:CentOS安装配置LNMP服务器(Nginx+PHP+MySQL)

二、系统约定

Nginx站点根目录:/usr/local/nginx/html

服务器执行脚本文件存放目录:/home/crontab

三、开始Nginx目录浏览功能

vi /usr/local/nginx/conf/nginx.conf #编辑配置文件,在http {下面添加以下内容:

autoindex on#开启nginx目录浏览功能

autoindex_exact_size off#文件大小从KB开始显示

autoindex_localtime on#显示文件修改时间为服务器本地时间

:wq! #保存,退出

service nginx reload #重新加载配置

参考:Nginx开启目录浏览功能

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链

安装篇:

一、创建镜像文件存放目录

mkdir -p /usr/local/nginx/html/centos #CentOS官方标准源

mkdir -p /usr/local/nginx/html/repoforge #第三方rpmforge源

mkdir -p /usr/local/nginx/html/epel #第三方epel源

说明:这里创建三个文件夹,分别存放CentOS官方标准源、第三方的rpmforge源和epel源

二、确定以上三个yum源上游源的同步镜像地址

1、CentOS官方标准源:rsync://mirrors.ustc.edu.cn/centos/

2、rpmforge源:rsync://mirrors.ispros.com.bd/repoforge/

3、epel源:rsync://mirrors.ustc.edu.cn/epel/

备注:上游yum源必须要支持rsync协议,否则不能使用rsync进行同步。

参考:

CentOS官方标准源:

rsync://mirrors.kernel.org/centos

rpmforge源:

http://apt.sw.be/

rsync://ftp-stud.fht-esslingen.de/dag

epel源:

http://mirrors.fedoraproject.org/publiclist/EPEL/

rsync://mirrors.kernel.org/fedora-epel

三、创建以上三个yum源同步脚本,并且设定脚本自动执行

mkdir -p /home/crontab #创建目录

vi /home/crontab/yum_rsync.sh #添加以下代码

#!/bin/sh

/usr/bin/rsync -avrt rsync://mirrors.ustc.edu.cn/centos/ --exclude-from=/usr/local/nginx/html/exclude_centos.list /usr/local/nginx/html/centos/

/usr/bin/rsync -avrt rsync://mirrors.ispros.com.bd/repoforge/ --exclude-from=/usr/local/nginx/html/exclude_repoforge.list /usr/local/nginx/html/repoforge/

/usr/bin/rsync -avrt rsync://mirrors.ustc.edu.cn/epel/ --exclude-from=/usr/local/nginx/html/exclude_epel.list /usr/local/nginx/html/epel/

:wq! #保存退出

chmod +x /home/crontab/yum_rsync.sh #添加脚本执行权限

备注:运行此脚本前,先要创建好同步目录及不需要同步的目录列表文件

cd /usr/local/nginx/html/ #进入目录

touch exclude_centos.list #创建文件

touch exclude_repoforge.list #创建文件

touch exclude_epel.list #创建文件

把不需要同步的目录写到上面对应的文件中,每行一个目录

例如:

vi exclude_epel.list

4/

4AS/

4ES/

4WS/

:wq! #保存退出

四、添加脚本定时执行任务

vi /etc/crontab #在最后一行添加以下代码

0 1 * * * root /home/crontab/yum_rsync.sh #设置每天凌晨1点整开始执行脚本

:wq! #保存退出

service crond restart #重启


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/764960.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-08-19
下一篇2023-08-19

发表评论

登录后才能评论

评论列表(0条)

    保存