使用 init 命令安装与 Python2 兼容的 repo 工具

Install repo tool compatible with Python2 with init command

我想要完成的是基于 Ubuntu 16.04 在 docker 容器中构建 Android 8 OS。要获取资源,我需要使用 repo 工具。最新的 repo 安装在 Dockerfile 中。 当我这样做时:

repo init -u git://git.osdn.net/gitroot/android-x86/manifest -b oreo-x86 -m android-x86-8.1-r6.xml

我遇到一些 Python 语法错误,因为此命令在 ./repo 中安装了最新的 repo 工具,它不支持 Ubuntu 中的默认 python 16.

然后我尝试向 init 添加额外的参数来安装 1.x 版本的 repo 而不是最新的,它将与 python 2.7 或 3.5 兼容, --repo-url 选项根据此 manual doc.

repo init --repo-url=https://gerrit.googlesource.com/git-repo/+/refs/heads/repo-1 -u git://...

它说 fatal: remote error: Git repository not found
然后我尝试其他选项 --repo-rev:

repo init --repo-url=https://gerrit.googlesource.com/git-repo --repo-rev=repo-1 -u git://...

我有 main.py: error: no such option: --repo-rev。我试过:

repo init --repo-rv=repo-1 -u git://...

同样的错误。

所以我的问题是: 是否可以安装特定版本的回购工具 init命令?以及如何去做?如何定义正确的repo-url?

我已经多次遇到这个问题,我总是通过安装最新的 python 版本来解决它。但现在我想尝试不同的方法。并且不要告诉我用 curl 下载想要的版本。我已经了解了如何执行此操作,但如果可能的话,我想使用 init 命令实现相同的结果。

我终于找到了答案。
我发现用 apt 安装的 repo 只是启动器。当发出 repo init 命令时,它会安装完整的 Repo 工具。您可以在此处阅读有关 Repo 工具的更多信息:https://source.android.com/setup/develop#repo.

事实证明,我提到的 docs 中的 Repo 启动器版本比当前最新版本旧。下载特定修订版的选项已更改。我查看了最新 repo 版本的源代码并找到了正确的选项。

因此,要使用 init 命令下载 1.x 版本的 Repo,请使用此选项:

repo init --repo-branch=repo-1 -u git://...

并且此版本将与从 2.7 到 3.5 的旧 Python 版本兼容。