在Ubuntu 22.04上,用SSH和HTTPS两种方式搞定OpenHarmony 4.0源码下载(附完整命令清单)
Ubuntu 22.04下OpenHarmony 4.0源码获取全指南:SSH与HTTPS双路径详解
第一次接触OpenHarmony源码下载的开发者,往往会在协议选择和工具配置上遇到各种"坑"。作为一款面向全场景的分布式操作系统,OpenHarmony的代码管理采用了多仓库模式,这意味着传统的git clone方式不再适用,而需要使用repo工具进行批量管理。本文将针对Ubuntu 22.04环境,详细对比SSH与HTTPS两种下载方式的完整流程,帮助开发者根据自身网络环境和安全需求,选择最适合的源码获取方案。
1. 环境准备与工具安装
在开始下载OpenHarmony源码前,我们需要确保系统具备必要的命令行工具。不同于单一仓库的项目,OpenHarmony的代码分布在数百个独立仓库中,这要求我们同时准备好git和repo工具链。
首先更新系统软件包索引:
sudo apt update安装基础依赖工具集:
sudo apt install -y git git-lfs python3-pip curlgit-lfs用于管理大文件(如预编译的二进制工具链)python3-pip是repo工具运行所需的Python包管理器curl用于下载repo启动脚本
配置git基础信息(后续提交代码时需要):
git config --global user.name "YourName" git config --global user.email "your.email@example.com"安装repo工具:
mkdir -p ~/bin curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo chmod a+x ~/bin/repo将repo添加到PATH环境变量(建议添加到~/.bashrc):
echo 'export PATH=$PATH:~/bin' >> ~/.bashrc source ~/.bashrc验证工具安装:
git --version python3 --version repo --version提示:如果遇到repo命令找不到的情况,请检查~/.bashrc中的PATH设置是否正确,并重新加载配置。
2. SSH方式下载源码全流程
SSH协议因其安全性和便利性,成为团队协作开发的首选方案。这种方式通过密钥对进行身份认证,避免了每次操作都需要输入密码的麻烦。
2.1 SSH密钥配置
生成ED25519密钥对(比传统RSA更安全):
ssh-keygen -t ed25519 -C "your.email@example.com"生成过程中会提示保存位置(默认~/.ssh/id_ed25519)和设置密码(可选)。
查看并复制公钥内容:
cat ~/.ssh/id_ed25519.pub将公钥添加到码云账户:
- 登录gitee.com
- 进入"设置"→"SSH公钥"
- 粘贴公钥内容并确认
测试SSH连接:
ssh -T git@gitee.com首次连接会提示确认指纹,输入yes后应看到欢迎信息。
2.2 源码下载步骤
创建项目目录并初始化仓库:
mkdir -p ~/openharmony/4.0 cd ~/openharmony/4.0初始化repo仓库(分支方式):
repo init -u git@gitee.com:openharmony/manifest.git \ -b OpenHarmony-4.0-Release \ --no-repo-verify或使用Tag方式获取精确版本:
repo init -u git@gitee.com:openharmony/manifest.git \ -b refs/tags/OpenHarmony-v4.0-Release \ --no-repo-verify同步所有仓库代码:
repo sync -c -j8-c表示只同步当前分支-j8指定并行任务数(根据CPU核心数调整)
拉取LFS大文件:
repo forall -c 'git lfs pull'注意:完整代码库下载需要约30GB磁盘空间,同步过程可能耗时较长(视网络状况约1-3小时)。
3. HTTPS方式下载源码详解
对于无法使用SSH的企业网络环境,或者临时需要获取代码的场景,HTTPS协议提供了更简单的接入方式,虽然每次操作需要输入账号密码,但省去了密钥配置的步骤。
3.1 基础配置
启用git凭证存储(避免重复输入密码):
git config --global credential.helper store首次操作时会提示输入码云账号密码,之后会自动保存。
3.2 源码下载命令
初始化仓库(分支方式):
repo init -u https://gitee.com/openharmony/manifest \ -b OpenHarmony-4.0-Release \ --no-repo-verify或使用Tag方式:
repo init -u https://gitee.com/openharmony/manifest \ -b refs/tags/OpenHarmony-v4.0-Release \ --no-repo-verify同步代码:
repo sync -c -j8 repo forall -c 'git lfs pull'4. 协议选择与疑难解答
4.1 SSH与HTTPS对比
| 特性 | SSH方式 | HTTPS方式 |
|---|---|---|
| 认证方式 | 密钥对认证 | 账号密码认证 |
| 安全性 | 更高(加密传输) | 较高(SSL加密) |
| 配置复杂度 | 需要生成和配置密钥 | 即装即用 |
| 企业网络适应性 | 可能被防火墙拦截 | 通常允许通过 |
| 长期使用体验 | 一次配置永久使用 | 可能需要定期重新认证 |
| 推荐场景 | 长期开发者 | 临时获取或企业受限网络环境 |
4.2 常见问题解决方案
问题1:repo sync过程中断
- 解决方案:使用
repo sync -c -j4 --fail-fast降低并行度 - 断点续传:直接重新执行
repo sync
问题2:磁盘空间不足
- 最小空间需求:50GB(源码+工具链)
- 检查命令:
df -h
问题3:LFS文件拉取失败
# 清理并重试 repo forall -c 'git lfs uninstall; git lfs install' repo forall -c 'git lfs pull'问题4:网络连接超时
- 尝试修改DNS为114.114.114.114或8.8.8.8
- 使用
--no-tags参数减少数据传输量:repo sync -c -j4 --no-tags
5. 工具链获取与验证
完成源码下载后,还需要获取专用的编译工具链:
bash build/prebuilts_download.sh这个脚本会下载包括:
- 交叉编译器(gcc-arm-none-eabi等)
- 构建工具(ninja、gn等)
- 平台SDK(HiSilicon、Rockchip等)
验证下载完整性:
ls -lh prebuilts/ du -sh .典型目录结构应包含:
openharmony/ ├── build ├── docs ├── kernel ├── prebuilts └── vendor在完成全部下载后,建议运行环境检查脚本:
bash build/prebuilts_download.sh --check对于国内开发者,如果遇到下载速度慢的问题,可以考虑配置华为镜像源:
export REPO_URL='https://mirrors.huaweicloud.com/repository/' pip3 config set global.index-url https://repo.huaweicloud.com/repository/pypi/simple