当前位置: 首页 > 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.jsqmd.com/news/933873/

相关文章:

  • 全面掌握PyMobileDevice3:Python控制iOS设备的专业解决方案
  • 保姆级教程:用ESPFlashDownloadTool_v3.6.3给NodeMCU烧录固件,一次成功
  • 手把手教你用GitHub给Obsidian笔记做“时光机”:版本回退与多端同步一步到位
  • 基于Arduino与光敏电阻的光控窗帘系统设计与实现
  • Sora 2赋能新闻生产:从文本指令到合规播出视频的7步标准化流水线(广电级交付实录)
  • WordPress Bricks Builder插件爆高危RCE漏洞(CVE-2024-25600),手把手教你如何自查与应急修复
  • 10000+明日方舟游戏素材:解决开发者与创作者资源管理的三大核心难题
  • UniRepLKNet的‘大核魔法’:从Dilated Reparam Block到多模态通用感知,一篇讲透设计精髓
  • 告别命令行!用Python的opensmile库5分钟搞定音频特征提取(附完整代码)
  • Pixel手机WiFi图标老有感叹号?用ADB命令5分钟搞定(附小米/华为备用地址)
  • 写作压力小了!2026年必不可少的专业降AIGC工具
  • 别再只画折线图了!用Python把轴承振动数据变成‘图片’,喂给CNN做寿命预测(附PHM2012数据集实战代码)
  • 避坑指南:STM32F407硬件IIC库函数调试,如何解决常见通信失败问题?
  • 终极解决方案:八大网盘直链下载神器LinkSwift完全指南
  • 别再手动找数据了!深入理解MATLAB的all、any和find,让你的代码效率翻倍
  • AI威胁论辨析:人类认知偏差与责任缺失才是真正风险源
  • 通达信缠论插件终极指南:5分钟从零搭建专业交易分析系统
  • 泛微E9实战:用JavaScript+SQL实现明细表动态加载(附完整代码与避坑点)
  • 别再为CKKS自举精度发愁了:OpenFHE里Meta-BTS的保姆级配置与实战避坑
  • 告别原生JS!用Electron-Vite + Vue3 5分钟搞定桌面应用开发环境(保姆级教程)
  • 全球仅7家机构掌握的Sora 2体育增强协议(SEP-v2):如何让AI生成视频通过VAR系统合规性校验?——含FIFA官方反馈原文节选
  • 边缘计算中机器学习模型的数据漂移:监测、应对与实战框架
  • 告别EditText!用Jetpack Compose的TextField打造现代化登录表单(附完整代码)
  • 告别‘找不准’:Halcon局部可变形匹配参数详解与避坑指南(从create到find)
  • 从电赛国一到毕业设计:手把手复现单相逆变器并联系统(STM32F407+IR2103全流程)
  • 别再只设环境变量了!深入Podman网络:为不同容器仓库配置独立代理(以docker.io和quay.io为例)
  • 给Android应用开发者的安全课:从DroidGuard看Google如何用虚拟机保护GMS与你的App
  • 远程内存技术深度解析:从RDMA到分布式内存架构的工程实践
  • 别再只用AES了!手把手教你用Bouncy Castle在Java 8+项目中集成国密SM4(附ECB/CBC完整代码)
  • 别再死记硬背了!通过PTA计算器题目,彻底搞懂C语言的字符与数字混合输入