1. 安装git 并设置邮件和用户名
sudo apt-get install git
git config --global user.email qin159358883@qq.com
git config --global user.name "hengdi"
可能出现的异常:
无法获取 dpkg 前端锁 (/var/lib/dpkg/lock-frontend),是否有其他进程正占用它(https://note.youdao.com/yws/r...)
原因在于安装软件时没有完成便强行关闭了
直接强制解锁
sudo rm /var/lib/dpkg/lock-frontend
sudo rm /var/cache/apt/archives/lock
sudo rm /var/lib/dpkg/lock
将~/bin加入到系统启动中,方便接下来使用repo
echo "PATH=~/bin:\$PATH" >> ~/.bashrc
# 刷新bash
source ~/.bashrc
2. 安装curl
sudo apt-get install curl
3. 安装 repo
curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
## 如果上述 URL 不可访问,可以用国内的:
# 清华
curl https://mirrors.tuna.tsinghua.edu.cn/git/git-repo > ~/bin/repo
# 中科大
curl -sSL 'https://gerrit-googlesource.proxy.ustclug.org/git-repo/+/master/repo?format=TEXT' |base64 -d > ~/bin/repo
##### 给repo增加执行权限
chmod a+x ~/bin/repo
创建REPO_URL 这个变量
# 谷歌(优先用这个)
export REPO_URL='https://gerrit-googlesource.proxy.ustclug.org/git-repo'
# 清华
export REPO_URL='https://mirrors.tuna.tsinghua.edu.cn/git/git-repo'
# cat ~/bin/repo 在其中会发现调用这个变量,如果这个变量不存在,则会使用google的git链接 速度很慢
4. 修改 python 软连接
后续过程需要用到python,因此修改软连接
sudo ln -s /usr/bin/python3.8 /usr/bin/python
5. 初始化仓库:
# 来到 repo所在文件夹
cd ~/bin/aosp
# 清华
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r17
# 中科大
repo init -u git://mirrors.ustc.edu.cn/aosp/platform/manifest -b android-10.0.0_r17
报错情况一:
fatal: 无法访问 'https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest/':server certificate verification failed. CAfile: none CRLfile: none manifests: sleeping 4.0 seconds before retrying fatal: 无法访问 'https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest/':server certificate verification failed. CAfile: none CRLfile: none fatal: cannot obtain manifest https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest
解决方案:
git config --global http.sslverify false
git config --global https.sslverify false
报错情况二:
Traceback (most recent call last): File "/root/bin/aosp/.repo/repo/main.py", line 651, in <module> _Main(sys.argv[1:]) File "/root/bin/aosp/.repo/repo/main.py", line 627, in _Main result = run() File "/root/bin/aosp/.repo/repo/main.py", line 620, in <lambda> run = lambda: repo._Run(name, gopts, argv) or 0 File "/root/bin/aosp/.repo/repo/main.py", line 286, in _Run result = cmd.Execute(copts, cargs) File "/root/bin/aosp/.repo/repo/subcmds/init.py", line 547, in Execute self._SyncManifest(opt) File "/root/bin/aosp/.repo/repo/subcmds/init.py", line 332, in _SyncManifest m.MetaBranchSwitch(submodules=opt.submodules) File "/root/bin/aosp/.repo/repo/project.py", line 3310, in MetaBranchSwitch self.Sync_LocalHalf(syncbuf, submodules=submodules) File "/root/bin/aosp/.repo/repo/project.py", line 1302, in Sync_LocalHalf lost = self._revlist(not_rev(revid), HEAD) File "/root/bin/aosp/.repo/repo/project.py", line 2875, in _revlist return self.work_git.rev_list(*a, **kw) File "/root/bin/aosp/.repo/repo/project.py", line 3088, in rev_list raise GitError('%s rev-list %s: %s' % error.GitError: manifests rev-list ('^4531c2f30a224a7782a4dd245f5d90ce84e2941d', 'HEAD', '--'): fatal: unsafe repository ('/root/bin/aosp/.repo/manifests' is owned by someone else) To add an exception for this directory, call: git config --global --add safe.directory /root/bin/aosp/.repo/manifests
解决方案:
# 正如报错中的提示信息, # 先执行如下命令 git config --global --add safe.directory /root/bin/aosp/.repo/manifests 重新执行inti和sync
6. 同步
然后进去解压好的aosp 文件夹 开始同步
cd ~/bin/aosp repo sync
repo sync的时候有可能会遇到的问题
info: A new version of repo is available repo: Updating release signing keys to keyset ver 2.3 warning: repo is not tracking a remote branch, so it will not receive updates repo reset: error: Entry '.github/workflows/test-ci.yml' not uptodate. Cannot merge. fatal: 不能重置索引文件至版本 'v2.16^0'。
解决方案:
cd ~/bin/aosp/.repo/repo
git pull
cd ~/bin/aosp
再次 repo init:
repo init -u https://mirrors.tuna.tsinghua.edu.cn/git/AOSP/platform/manifest -b android-10.0.0_r17
repo sync
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。