当前位置: 首页 > news >正文

在Ubuntu 22.04上,我是这样搞定OpenHarmony 4.0源码和工具链的(保姆级实录)

在Ubuntu 22.04上,我是这样搞定OpenHarmony 4.0源码和工具链的(保姆级实录)

作为一个长期在Linux环境下工作的开发者,第一次接触OpenHarmony的源码下载和工具链配置时,确实踩了不少坑。这篇文章将详细记录我在Ubuntu 22.04系统上从零开始配置OpenHarmony 4.0开发环境的完整过程,包括那些官方文档没有提及的细节问题和解决方案。

1. 环境准备与基础工具安装

在开始之前,确保你的Ubuntu系统已经更新到最新状态。我建议先执行以下命令:

sudo apt update && sudo apt upgrade -y

OpenHarmony的源码管理主要依赖git和repo工具,而repo又是基于Python开发的。因此我们需要安装以下基础工具包:

sudo apt install git git-lfs python3-pip curl -y

注意git-lfs是必须的,因为OpenHarmony使用它来管理大文件。如果漏装,后续的git lfs pull命令会失败。

安装完基础工具后,我们需要配置repo工具。这里有个小技巧可以加速后续的下载过程:

mkdir -p ~/bin curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/bin/repo chmod a+x ~/bin/repo

为了让系统能够找到这个repo命令,需要将~/bin添加到PATH环境变量中:

echo 'export PATH=$PATH:~/bin' >> ~/.bashrc source ~/.bashrc

2. Git配置与SSH密钥设置

为了能够顺利从Gitee克隆代码,我们需要先配置Git的全局信息:

git config --global user.name "你的名字" git config --global user.email "你的邮箱" git config --global credential.helper store

如果你打算使用SSH协议下载代码(推荐,速度更快更稳定),还需要设置SSH密钥:

  1. 生成SSH密钥对(如果已有可跳过):
ssh-keygen -t ed25519 -C "your_email@example.com"
  1. 将公钥添加到Gitee账户:
cat ~/.ssh/id_ed25519.pub

复制输出的内容,登录Gitee网站,在"SSH公钥"设置中添加。

  1. 测试SSH连接是否成功:
ssh -T git@gitee.com

如果看到欢迎信息,说明配置成功。

3. 源码下载实战与问题解决

创建一个专门存放OpenHarmony源码的目录:

mkdir -p ~/ohos/openharmony cd ~/ohos/openharmony

3.1 使用SSH协议下载源码(推荐)

对于OpenHarmony 4.0 Release版本,执行以下命令初始化仓库:

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-4.0-Release --no-repo-verify

常见问题1:如果遇到fatal: Cannot get https://gerrit.googlesource.com/git-repo/clone.bundle错误,这是因为repo默认会尝试从Google源下载bundle。解决方案是添加--repo-url参数:

repo init -u git@gitee.com:openharmony/manifest.git -b OpenHarmony-4.0-Release --no-repo-verify --repo-url=https://gitee.com/oschina/repo

初始化成功后,开始同步代码:

repo sync -c

注意:这个过程可能会非常漫长(取决于你的网络状况),我建议在晚上开始同步,让它通宵运行。

3.2 加速repo sync的小技巧

  1. 使用-j参数增加并行下载数:
repo sync -c -j8
  1. 如果同步中断,可以重复执行repo sync -c命令,它会自动继续未完成的下载。

  2. 对于特别大的仓库,可以单独同步:

repo sync -c platform/vendor/hisi

同步完成后,别忘了执行LFS拉取:

repo forall -c 'git lfs pull'

4. 工具链下载与配置

源码下载完成后,还需要获取编译工具链:

bash build/prebuilts_download.sh

常见问题2:如果遇到权限问题,可以尝试:

chmod +x build/prebuilts_download.sh bash build/prebuilts_download.sh

这个脚本会下载各种交叉编译工具链和预编译的二进制文件,大约需要10-20GB的额外空间。

4.1 磁盘空间管理

整个OpenHarmony 4.0的源码加工具链大约需要50GB空间。如果你的系统分区空间不足,可以考虑:

  1. 使用符号链接将部分目录挂载到其他分区:
mv ~/ohos /mnt/another_drive/ ln -s /mnt/another_drive/ohos ~/ohos
  1. 清理不必要的文件:
sudo apt clean sudo rm -rf /var/cache/apt/archives/*

5. 验证安装与后续步骤

为了确认所有组件都已正确安装,可以尝试运行:

./build.sh --product-name rk3568 --ccache

注意:首次编译会非常耗时,可能需要几个小时。建议在性能较好的机器上运行,并确保有足够的CPU和内存资源。

如果一切顺利,你应该能看到编译过程正常进行。至此,你已经成功在Ubuntu 22.04上搭建了OpenHarmony 4.0的开发环境。接下来可以开始探索OpenHarmony的代码结构,或者尝试为特定开发板构建镜像。

http://www.gsyq.cn/news/1445210.html

相关文章:

  • 告别命令行!用Python的opensmile库5分钟搞定音频特征提取(附完整代码)
  • 别再只画折线图了!用Python把轴承振动数据变成‘图片’,喂给CNN做寿命预测(附PHM2012数据集实战代码)
  • 告别原生JS!用Electron-Vite + Vue3 5分钟搞定桌面应用开发环境(保姆级教程)
  • 告别‘找不准’:Halcon局部可变形匹配参数详解与避坑指南(从create到find)
  • 全球仅7家机构掌握的Sora 2体育增强协议(SEP-v2):如何让AI生成视频通过VAR系统合规性校验?——含FIFA官方反馈原文节选
  • 告别EditText!用Jetpack Compose的TextField打造现代化登录表单(附完整代码)
  • 从电赛国一到毕业设计:手把手复现单相逆变器并联系统(STM32F407+IR2103全流程)
  • 远程内存技术深度解析:从RDMA到分布式内存架构的工程实践
  • 别再死记硬背了!通过PTA计算器题目,彻底搞懂C语言的字符与数字混合输入
  • 2026年成都川西旅拍婚纱照推荐,结合本地口碑盘点,成都大咖视觉分享靠谱婚纱照与川西旅拍婚纱照选择建议 - 栗子测评
  • 2026年企业云盘选型指南:5款主流产品横评
  • 不只是卷积的平替:我把DCNv4塞进Stable Diffusion的U-Net里,图像生成效果居然更好了?
  • 手把手教你调用ADS-B实时飞行数据API(附Python代码与FTP配置)
  • 从PEM文件到十六进制:一步步拆解ECC公钥的ASN.1结构,理解X,Y坐标的由来
  • KaOS分布式平台:智能建筑自动化的20年实践与优化
  • DataUp:轻量级开源工具,破解科研数据长尾困境
  • 从Alto到云计算:查克·萨克的系统设计哲学与工程实践启示
  • 传感器介绍
  • 【LeetCode刷题日记】一篇搞懂回溯算法模板,附77.组合详解
  • 2026推荐新疆靠谱纯玩无购物旅行社:盘点新疆正规口碑好的优质旅行社 - 栗子测评
  • 从旋钮到菜单:EC11编码器在OLED屏幕交互中的实战应用(避坑指南)
  • 2026年川西旅拍工作室推荐指南,综合口碑与服务分析,成都大咖视觉告诉你川西旅拍哪家好 - 栗子测评
  • SAP ABAP Web Service实战:从SE80到SOAMANAGER,手把手教你打通内外系统接口
  • 鸿蒙ArkTS实战:5分钟搞定阿里云通义千问API对接(附完整代码)
  • 技术团队如何量化与激励基础设施与工程效能等恒星工作
  • 小数据集文档分类实战:7种方法解决数据稀缺难题
  • 构建万物互联的Lab of Things:开源物联网研究平台架构与实战
  • 从LLM生成文本中提取结构化主张:Claimify项目技术解析与应用实践
  • AI生成医疗文书的风险与防御:如何防止病历丢失病人个体信息
  • 别再瞎调电压了!用Density Evolution(DE)算法为你的NAND闪存LDPC纠错码找到最佳读电压