转载自:https://blog.csdn.net/u010117864/article/details/88805136?utm_medium=distribute.pc_aggpage_search_result.none-task-blog-2~aggregatepage~first_rank_v2~rank_aggregation-4-88805136.pc_agg_rank_aggregation&utm_term=Linux%E5%AE%89%E8%A3%85repo%E9%85%8D%E7%BD%AE&spm=1000.2123.3001.4430
首先简单介绍一下repo是什么:
repo是Android为了方便管理多个git库而开发的Python脚本。repo的出现,并非为了取代git,而是为了让Android开发者更为有效的利用git。
Android源码包含数百个git库,仅仅是下载这么多git库就是一项繁重的任务,所以在下载源码时,Android就引入了repo。 Android官方推荐下载repo的方法是通过Linux curl命令,下载完后,为repo脚本添加可执行权限:
$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
$ chmod a+x ~/bin/repo
由于国内Google访问受限,所以上述命令不一定能下载成功。其实,我们现在可以从很多第三方渠道找到repo脚本,只需要取下来,确保repo可以正确执行即可。
以上只粘过来的一段,下面言归正传:
安装步骤:
1、根目录下创建.bin文件夹
mkdir ~/.bin
2、配置为临时环境变量(也可配置为永久的)
PATH=~/.bin:$PATH
3、下载repo
git clone https://gerrit-googlesource.lug.ustc.edu.cn/git-repo
4、将git-repo中的repo文件复制到 1 创建的.bin目录中
cd git-repo
cp repo ~/.bin/
5、修改权限
chmod a+x ~/.bin/repo
6、创建同步源码的工作目录
mkdir android_source
7、在工作目录中创建.repo目录
cd android_source
mkdir .repo
8、将下载的git-repo拷贝到.repo下,并改名为 repo
9、可以重新初始化了
repo init -u xxxxxxxxx -b xxxx
((repo init -u URL 用以在当前目录安装 repository ,会在当前目录创建一个目录 ".repo" -u 参数指定一个URL, 从这个URL 中取得repository 的 manifest 文件。
示例:repo init -u git://android.git.kernel.org/platform/manifest.git
获取的manifest文件放在.repo目录中。命名为manifest.xml。这个文件的内容其实就是所有被git管理的仓库的列表!可以用 -b 参数来指定某个manifest 分支。
示例:repo init -u git://android.git.kernel.org/platform/manifest.git -b release-1.0
你会发现.repo/manifests是个被git管理的仓库,这里放的是所有的manifest文件(*.xml),因为被git管理,固然有分支,-b可以切换到你想要的分支然后再下载相关的xml文件,当然具体下载那个xml还要看-m参数了,所以如果你仅仅指定-b而没有-m的话,就是下载-b指定分支下的default.xml文件,如果不指定-b参数,那么会默认使用master分支
————————————————
原文链接:https://blog.csdn.net/nei504293736/article/details/72236137
))
10、开始同步
repo sync
以上步骤很清晰,但是如果你不能顺利的成功安装repo,请参考以下步骤:
11. 找到上面步骤5中/.bin下面的repo文件 (repo文件在根目录下,可以使用:“cd /” 到根目录;也可以使用find命令查找repo的位置:“find / -name repo”)
12. (这步是关键)
很多同学在上面的第9步repo init是会失败,原因是repo init会访问https://gerrit.googlesource.com/git-repo
所以我们需要将:https://gerrit.googlesource.com/git-repo
替换成中国科技技术大学的镜像链接:https://mirrors.ustc.edu.cn/aosp/git-repo
这个网址就是在repo文件中定义的。
13. 在上一步可能会发现repo无法修改,因为它的初始状态是只读的,我们需要修改一下读写权限:
chmod 777 repo
大功告成!