[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker pull线上镜像方式构建编译环境

T. 已测试目录

主机类型主机版本Docker镜像版本结果
WSL2Ubuntu22.04Ubuntu20.04PASS
WSL2Ubuntu22.04Ubuntu18.04PASS

R. 软硬件要求:

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

​ 安装好Docker的Linux发行版。

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

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

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

0. 制作过程

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

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

1. 获取源码

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

image-20241123223700213

2. 获取镜像

获取镜像有两种方式:

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

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

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

    Github Dockerfile源码:openharmony_5.x_docker_env

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

  2. 下载我封装好的压缩包,跳转链接之后下面的不用看了,直接看链接里面的即可。

    链接:[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式

3. 拉取镜像

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

sudo docker pull taxuevernon/openharmony_5.x_docker_env:5.0

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

看一下镜像

image-20241127154701330

4. 运行容器

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

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

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

OHOS_5/(应该映射的是这一层,也就是`-v`参数后面写的东西,映射到Docker里也应该是这个层级)├── OHS_5 (源码真正存放的目录)├── openharmony_prebuilts (如果你是repo同步源码,这个东西后面才会有)
sudo docker run --name ohos_5_v0.1 -ti -v /home/taxue/OpenHarmony-v5.0.0-Release:/home/taxue/ -p 10022:22 ohos:5.0 /bin/bash

5. 安装hb构建工具

先进入源码目录:

cd /home/taxue/OpenHarmony

再安装:

python3 -m pip install --user build/hb

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

6. 准备编译

先进入源码根目录

cd /home/taxue/OpenHarmony

6.1 clean

执行一次clean

hb clean

6.2 预编译工具

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

bash build/prebuilts_download.sh

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

image-20241125105034140

6.3 拉取最新源码(选做)

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

拉取最新代码

repo sync -c

6.4 开始编译

参考链接:编译

6.4.1 脚本方式编译(推荐)

推荐的理由是我这个编译通了,而另一个没有

bash ./build.sh --product rk3568

6.4.2 hb方式编译

源码根目录执行

image-20241121182100335

hb set

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

image-20241121182126875

之后就可以进行编译了

hb build -f # 全量编译
hb build # 增量编译

6.5 编译结果

image-20241124185116358

F. 参考

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/481894.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Git 快速入门:全面了解与安装步骤

Git 快速入门:全面了解与安装步骤 一、关于Git 1.1 简介 Git 是一个开源的分布式版本控制系统,由 Linus Torvalds 于 2005 年创建,最初是为了更好地管理 Linux 内核开发而设计。 Git用于跟踪计算机文件的变化,特别是源代码文件…

基于Java Springboot奶茶点餐微信小程序

一、作品包含 源码数据库万字文档全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA,微信开发者工具 数据…

vulnhub靶场【哈利波特】三部曲之Fawkes

前言 这次的靶机与前面不同,这里涉及到缓冲区溢出等 这个靶机也让我知道薄弱点了,缓冲溢出这方面之前接触少,所以刚拿到这个靶机打开后,人蒙了,在网上查阅好多资料,也只是浅学一下,这里主要也是…

神经网络中常见的激活函数Sigmoid、Tanh和ReLU

激活函数在神经网络中起着至关重要的作用,它们决定了神经元的输出是否应该被激活以及如何非线性地转换输入信号。不同的激活函数适用于不同的场景,选择合适的激活函数可以显著影响模型的性能和训练效率。以下是三种常见的激活函数:Sigmoid、T…

基于Java Springboot蛋糕订购小程序

一、作品包含 源码数据库设计文档万字PPT全套环境和工具资源部署教程 二、项目技术 前端技术:Html、Css、Js、Vue、Element-ui 数据库:MySQL 后端技术:Java、Spring Boot、MyBatis 三、运行环境 开发工具:IDEA/eclipse 微信…

<项目代码>YOLOv8 红绿灯识别<目标检测>

YOLOv8是一种单阶段(one-stage)检测算法,它将目标检测问题转化为一个回归问题,能够在一次前向传播过程中同时完成目标的分类和定位任务。相较于两阶段检测算法(如Faster R-CNN),YOLOv8具有更高的…

ProtonBase 教育行业解决方案

01/方案概述 当前,大数据、云计算等技术正加速教育行业的数字化转型,教学模式从线下转向线上,传统教育企业向具有互联网性质的新型教育企业转变。在此背景下,教育企业亟需探索多源数据的融合扩展,以应对复杂的业务场景…

Mybatis:CRUD数据操作之删除一行数据

Mybatis基础环境准备请看:Mybatis基础环境准备 本篇讲解Mybati数据CRUD数据操作之单条删除数据 当用户点击了该按钮,就会将改行数据删除掉。那我们就需要思考,这种删除是根据什么进行删除呢?是通过主键id删除,因为id是…

力扣1382:将二叉搜索树便平衡

给你一棵二叉搜索树,请你返回一棵 平衡后 的二叉搜索树,新生成的树应该与原来的树有着相同的节点值。如果有多种构造方法,请你返回任意一种。 如果一棵二叉搜索树中,每个节点的两棵子树高度差不超过 1 ,我们就称这棵二…

架构01-演进中的架构

零、文章目录 架构01-演进中的架构 1、原始分布式时代:Unix设计哲学下的服务探索 (1)背景 时间:20世纪70年代末到80年代初计算机硬件:16位寻址能力、不足5MHz时钟频率的处理器、128KB左右的内存转型:从…

MySQL —— MySQL 程序

目录 前言 一、MySQL 程序简介 二、mysqld -- MySQL 服务器 三、mysql -- MySQL 客户端 1. mysql 客户端简介 2. mysql 客户端选项 (1)指定选项的方式 (2)mysql 客户端命令常用选项 (3)在命令行中使…

GoogleTest做单元测试

目录 环境准备GoogleTest 环境准备 git clone https://github.com/google/googletest.git说cmkae版本过低了,解决方法 进到googletest中 cmake CMakeLists.txt make sudo make installls /usr/local/lib存在以下文件说明安装成功 中间出了个问题就是,…

Flink四大基石之CheckPoint

1、State Vs Checkpoint State:状态,是Flink中某一个Operator在某一个时刻的状态,如maxBy/sum,注意State存的是历史数据/状态,存在内存中。 Checkpoint:快照点, 是Flink中所有有状态的Operator在某一个时刻的State快照信息/存档信息。 一句话概括: Checkpoint就是State的快照…

基于TensorFlow的手写体数字识别训练与测试

需求: 选择一个最简单的细分方向,初步了解AI图像识别的训练、测试过程TensorFlow、PyTorch、c,三种代码方案,先从TensorFlow入手探讨最基本问题的优化问题 总结: 基于TensorFlow的python代码库自带了mnist 训练数据…

YOLO系列论文综述(从YOLOv1到YOLOv11)【第11篇:YOLO变体——YOLO+Transformers、DAMO、PP、NAS】

YOLO变体 1 DAMO-YOLO2 PP-YOLO, PP-YOLOv2, and PP-YOLOE2.1 PP-YOLO数据增强和预处理2.2 PP-YOLOv22.3 PP-YOLOE 3 YOLO-NAS4 YOLO Transformers5 YOLOv1-v8及变体网络结构总结 YOLO系列博文: 【第1篇:概述物体检测算法发展史、YOLO应用领域、评价指标…

SE16N 外键校验报错问题

问题: SE16N维护时,偶尔有一些莫名奇妙的校验报错,条目XX在表XX中不存在,但是实际数据时存在的。 分析: DEBUG过程中,定位到数据校验部分,发现当外键定义的关联字段中存在某些不在对应维护表中…

【数据结构】二叉搜索树(二叉排序树)

🌟🌟作者主页:ephemerals__ 🌟🌟所属专栏:数据结构 目录 前言 一、什么是二叉搜索树 二、二叉搜索树的实现 节点 属性和接口的声明 插入 查找 删除 拷贝构造 析构 中序遍历 三、二叉搜索树的…

【接口自动化测试】一文从3000字从0到1详解接口测试用例设计

接口自动化测试是软件测试中的一种重要手段,它能有效提高测试效率和测试覆盖率。在进行接口自动化测试之前,首先需要进行接口测试用例的设计。本文将从0到1详细且规范的介绍接口测试用例设计的过程,帮助读者快速掌握这一技能。 一、了解接口…

使用 PDF API 合并 PDF 文件

内容来源: 如何在 Mac 上合并 PDF 文件 1. 注册与认证 您可以注册一个免费的 ComPDFKit API 帐户,该帐户允许您在 30 天内免费无限制地处理 1,000 多个文档。 ComPDFKit API 使用 JSON Web Tokens 方法进行安全身份验证。从控制面板获取您的公钥和密钥&…

微服务即时通讯系统的实现(服务端)----(2)

目录 1. 语音识别子服务的实现1.1 功能设计1.2 模块划分1.3 模块功能示意图1.4 接口的实现 2. 文件存储子服务的实现2.1 功能设计2.2 模块划分2.3 模块功能示意图2.4 接口的实现 3. 用户管理子服务的实现3.1 功能设计3.2 模块划分3.3 功能模块示意图3.4 数据管理3.4.1 关系数据…