[OpenHarmony6.0][Docker][环境]OHOS6 编译环境构建指南

T. 已测试目录

主机类型 主机版本 Docker镜像版本 结果
WSL2 Ubuntu22.04 Ubuntu20.04 PASS
WSL2 Ubuntu22.04 Ubuntu18.04 PASS
服务器 Ubuntu24.04 Ubuntu20.04 PASS

R. 软硬件要求:

  • 硬件:
设备 容量 备注
硬盘 >500G 多版本系统测试,必须固态,否则编译卡死
硬盘 >300G 单系统开发,必须固态,否则编译卡死
内存 >25G 物理机
内存 >32G WSL2
  • 软件:

​ 安装好Docker的Linux发行版。

如果你使用的是WSL2,请不要将源码存放在NTFS文件系统的目录中!!

应该把WSL2进行迁移之后,下载源码到Linux的EXT4文件系统的目录下!用户目录之类的都可以!

WSL2迁移可以参考:[WSL][教程]WSL2系统迁移到其他盘以及其他电脑教程

0. 制作过程

如果你想知道这个镜像是如何制作的,请看下面的教程,如果你只想拿到镜像。那就往下看就好了

链接:[OpenHarmony5.0][Docker][教程]OpenHarmony5.0编译环境基于WSL2封装Docker镜像教程

1. 获取源码

源码下载请参考:OHOS_5.0中的[源码下载]章节,建议使用repo下载。

拉取源码之前,请先按照拉取源码前提条件安装需要的依赖工具。

并且,创建如下的目录层级:[Home/OHOS6/OpenHarmony],在OpenHarmony文件夹中执行repo的init,用repo拉取源码

6.0 请使用tag方式拉取,最新的源码有问题编译不过。

拉取完成之后应该如下目录

2. 获取镜像

获取镜像有两种方式:

  1. Docker Hub及其镜像站获取。(本篇)

    不需要源码的话直接往下面看就可以了。下面是构建源码的链接:

    Gitee Dockerfile源码:openharmony_5.x_docker_env Issue和PR请在Gitee上提交~

    Github Dockerfile源码:openharmony_5.x_docker_env

    如果有用,辛苦麻烦给个Star喽~

3. 拉取镜像

Docker的安装请参照其他教程,较为简单,这里不再赘述

bash 复制代码
sudo docker pull taxuevernon/openharmony_5.x_docker_env:5.0

6.0 可以直接用5.0的环境编译。

如果你的网络环境拉取不下来,**请自己找国内镜像源替代。**具体如何替代自行查阅。

看一下镜像

4. 运行容器

启动的时候要顺便把源码通过Volume映射到Ubuntu里面

下面的-v内容一定要特别注意!!!

你的映射必须要到源码的上一级目录,把源码再加一层文件夹,也就是说你要映射为如下结构!!!

bash 复制代码
OHOS6/(应该映射的是这一层,也就是`-v`参数后面写的东西,映射到Docker里也应该是这个层级)
	├── OpenHarmony (源码真正存放的目录)
	├── openharmony_prebuilts (如果你是repo同步源码,这个东西后面才会有)
bash 复制代码
sudo docker run --name openharmony_5.x_docker_env -ti -v /mnt/OhosDisk/OHOS6:/home/taxue/ -p 10022:22 taxuevernon/openharmony_5.x_docker_env:5.0 /bin/bash

5. 安装hb构建工具

先进入源码目录:

bash 复制代码
cd /home/taxue/OpenHarmony

再安装:

bash 复制代码
python3 -m pip install --user build/hb

PATH我已经提前写好,不用更新。

6. 准备编译

先进入源码根目录

bash 复制代码
cd /home/taxue/OpenHarmony

6.1 clean

执行一次clean

bash 复制代码
hb clean

6.2 预编译工具

需要为你的下载的源码重新过一下编译工具

bash 复制代码
bash build/prebuilts_download.sh

一般npm每次都要重新安装的

6.3 拉取最新源码(选做)

如果你在获取源码的时候就是使用的repo,那么你可以跳过本节。一般来说不需要执行

拉取最新代码

bash 复制代码
repo sync -c

6.4 开始编译

参考链接:编译

6.4.1 脚本方式编译

6.0两个都可以使用,后者会新一点

bash 复制代码
sudo dpkg-reconfigure dash # 选择no
./build.sh -p rk3568

6.4.2 hb方式编译

源码根目录执行

bash 复制代码
hb set

之后按照你自己的板子进行选择

然后就可以进行编译了

bash 复制代码
hb build -f # 全量编译
hb build # 增量编译

6.5 编译结果

F. 参考

[OpenHarmony5.0][Docker][教程]OpenHarmony5.0编译环境基于WSL2封装Docker镜像教程

相关推荐
阿里云大数据AI技术2 小时前
云栖实录 | 洋钱罐基于 EMR Serverless 产品构建全球一体化数字金融平台
大数据·运维
saber_andlibert2 小时前
【Linux】Shell脚本
运维·chrome·vscode·编辑器·vim·shell
qq_401700412 小时前
Linux 磁盘挂载管理
linux·运维·服务器
百***25613 小时前
Nginx作用以及应用场景
运维·nginx
小徐敲java3 小时前
window使用phpStudy在nginx部署前端测试
运维·前端·nginx
Crazy________3 小时前
38nginx四层负载均衡配置,和动静分离解析
linux·运维·nginx·负载均衡
YongCheng_Liang4 小时前
ELK 自动化部署脚本解析
linux·运维·elk·jenkins
小白博文4 小时前
MobaXterm调用远程服务器(Linux)图形化界面应用
linux·运维·服务器
百***67034 小时前
Nodemailer使用教程:在Node.js中发送电子邮件
linux·运维·node.js