威县网站建设网站建设先有域名然后呢
威县网站建设,网站建设先有域名然后呢,网站建设策划案模版,如何制作一个二维码文章目录 定制repo#xff08;不再切换python和google源#xff09;前言各用各的repo定制repo2/repo3源码自动识别repo2/repo3项目完整解决方案#xff1a; 定制repo#xff08;不再切换python和google源#xff09; 众知#xff0c;Android/AOSP/ROM系统开发#xff0c… 文章目录 定制repo不再切换python和google源前言各用各的repo定制repo2/repo3源码自动识别repo2/repo3项目完整解决方案 定制repo不再切换python和google源 众知Android/AOSP/ROM系统开发不可避免地要和repo打交道。但repo并不好用和python版本相关联、拉取google源、容易受共用服务器影响。本文提出了灵活管理repo的办法还需简单魔改一下。 前言
关于repo最详尽的知识在这里不再赘述详情参考本人文章《深入学习Repo》
使用repo有以下几个痛点 python版本不对会影响使用需要切换 每次使用会默认拉取最新代码国内没法访问google然后卡死在这 repo用apt安装默认在usr/bin/下面容易被同服务器的操作干扰而突然失效/出问题 有的项目用的是repo2有的项目用的是repo3每次都要去确认然后选择用哪个
由于repo分别有python2.7和python3的版本在文章下面我们统称为repo2和repo3
各用各的repo
repo本质上是一个python代码编译出的linux二进制文件。
如果使用apt来安装repo将会默认安装在usr/bin/
在linux服务器中如果有用户更新、替换了repo甚至切换了python那可能会影响另一个用户的行为。
所以解决方案是
git clone gitxxx.net:/git-repo.git
cd git-repo/
mkdir ~/bin/
cp repo ~/bin/
chmod ax ~/bin/repo这样就互不干涉比如用户abc用的repo就在/home/abc/bin/repo下面
并且将这个bin加入环境变量PATH
PATH~/bin:$PATH由于repo有2和3两个版本
如果适用python2我们就命名为repo2
如果适用python3我们就命名为repo3
下面我们会讲解如何解决不同的repo要使用不同的python版本的问题。
git clone gitxxx.net:/git-repo2.git
cd git-repo2/
mkdir ~/bin/
cp repo ~/bin/repo2
chmod ax ~/bin/repo2git clone gitxxx.net:/git-repo3.git
cd git-repo3/
mkdir ~/bin/
cp repo ~/bin/repo3
chmod ax ~/bin/repo3定制repo2/repo3源码
repo每次都会拉取更新最新的repo版本但是很多内容的更新并不一定对我们普通工程师有影响。
所以提出了一个大胆的想法将repo单独领出来建一个自己的仓库而不去goole的源码地址拉取不然国内老提示无法访问。
以下是本人的仓库
https://github.com/KingofHubGit/git-repo2
https://github.com/KingofHubGit/git-repo3
对于google官方的源码做了以下几处修改 修改每次拉取的源为我自己的github地址 REPO_URL gitgithub.com:KingofHubGit/git-repo3.git修改每次拉取的源为我自己的github分支 REPO_REV main由于早期项目都是默认master分支现在改为main分支了。所以此处要更新。 使用repo过程中发现python脚本不对我们就会使用以下命令 sudo update-alternatives --config python如果老是切换python版本这样会影响别人影响android源码的编译 所以针对于repo3将python环境变量改为 #!/usr/bin/env python3针对于repo2将python环境变量改为 #!/usr/bin/env python2虽然github国内可以访问也经常抽搐可以改成gitee。 最根本的方法是直接不要再拉取最新的源码啦 默认关闭拉取源码 group.add_option(--no-repo-verify,destrepo_verify,defaultFalse,actionstore_false,helpdo not verify repo source code,)def check_repo_verify(repo_verifyFalse, quietFalse):自动识别repo2/repo3项目
有了上面的定制化修改不用再切换python版本啦
但如果项目A的源码用repo2 项目B的源码用了repo3那可咋整啊每次repo2和repo3要改来改去最初的repo呢
针对于这个这里提出了一个妙招
可以在~/.bashrc下面增加一个repo的函数方法用于判断识别项目是repo2还是repo3然后调用对应的repo
repo(){#echo $#确认已经是repo项目了if [ -f ./.repo/repo/repo ]; then#判断是否为repo2is_repo2grep MIN_PYTHON_VERSION.*2, ./.repo/repo/repo | wc -l#echo is_repo2$is_repo2if [ $is_repo2 1 ];then echo repo2 working#调用~/bin/repo2eval ~/bin/repo2 $ elseecho repo3 working#调用~/bin/repo3eval ~/bin/repo3 $fielse#默认使用~/bin/repo3echo repo3 workingeval ~/bin/repo3 $fi
}完整解决方案
拉取repo2
git clone gitgithub.com:KingofHubGit/git-repo2.gitcd git-repo2/
mkdir ~/bin/
PATH~/bin:$PATH
cp repo ~/bin/repo2
chmod ax ~/bin/repo2拉取repo3
git clone gitgithub.com:KingofHubGit/git-repo3.gitcd git-repo3/
mkdir ~/bin/
PATH~/bin:$PATH
cp repo ~/bin/repo3
chmod ax ~/bin/repo3将代码块添加到~/.bashrc下面
repo(){if [ -f ./.repo/repo/repo ]; thenis_repo2grep MIN_PYTHON_VERSION.*2, ./.repo/repo/repo | wc -l#echo is_repo2$is_repo2if [ $is_repo2 1 ];then echo repo2 workingeval ~/bin/repo2 $ elseecho repo3 workingeval ~/bin/repo3 $fielseecho repo3 workingeval ~/bin/repo3 $fi
}重新加载环境
source ~/.bashrc实践出真知
拉取repo项目默认使用repo3 这里是一个repo2项目 从所未有的干净清爽 注意如果bash具有repo函数了理论上优先级高于usr/bin/repo为了以防万一有干扰可以尝试将usr/bin/repo重命名为usr/bin/repo_google。 如果这篇文章对你有用的话麻烦留下你的关注我将持续亮剑干货
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/87210.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!