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

[环境搭建]OpenHarmony开发环境搭建

文章目录

    • 1. 开发工具
      • 1.1 虚拟机
      • 1.2 Ubuntu镜像
    • 2 虚拟机安装和配置
      • 2.1 虚拟机安装
      • 2.2 生成SSH KEY
      • 2.3 配置国内apt源&更新
      • 2.4 sh修改为bash
      • 2.5 下载OpenHarmony依赖工具
      • 2.6 python软链接
      • 2.7 samba配置
    • 3. gitee账号注册
    • 4. 配置git和Repo
      • 4.1 git配置
      • 4.2 Repo

1. 开发工具

1.1 虚拟机

如果在Windows下开发,需要安装虚拟机。如果本身是Linux环境,可跳过。

推荐使用VirtualBox。也可以使用VmWare。
VirtualBox下载地址:https://www.virtualbox.org/wiki/Downloads

1.2 Ubuntu镜像

下载地址:https://ubuntu.com/download/desktop

注:建议使用22.04 LTS及以上版本

2 虚拟机安装和配置

2.1 虚拟机安装

  1. 打开VirtualBox,导入下载的Ubuntu ISO镜像安装
  2. CPU/内存:8核 + 8G(编译吃内存,越大越好)
  3. 磁盘空间预留300GB(OpenHarmony代码仓较大)
  4. 虚拟机中需要安装的软件
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get openssh-server
# 此后,在虚拟机外,可以使用ssh直接访问了(第二个网卡ip地址)
# SSH工具推荐 WindTerm

2.2 生成SSH KEY

参考:
SSHKEY公钥生成和设置: GITEE

2.3 配置国内apt源&更新

# 先备份
$ sudo cp -a /etc/apt/sources.list /etc/apt/sources.list.bak# 然后替换
$ sudo sed -i "s@http://.*archive.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list
$ sudo sed -i "s@http://.*security.ubuntu.com@http://repo.huaweicloud.com@g" /etc/apt/sources.list# 更新索引
$ sudo apt-get update

2.4 sh修改为bash

因为部分编译工具链需要bash

$ sudo dpkg-reconfigure dash   # 对话框中选择no
# 然后验证
$ ls -l /bin/sh
# /bin/sh -> bash

2.5 下载OpenHarmony依赖工具

$ sudo apt-get update && sudo apt-get install binutils git git-lfs gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc unzip m4 bc gnutls-bin python3.10 python3-pip ruby

2.6 python软链接

python3.10或者其他版本安装后,增加如下软链接

$ sudo ln -s /usr/bin/python3.10 /usr/bin/python
# 验证
$ ll /usr/bin/python*
/usr/bin/python -> /usr/bin/python3*
/usr/bin/python3 -> python3.10*
/usr/bin/python3.10*

2.7 samba配置

为了从Windows直接访问虚拟机中的目录

  1. 安装samba
$ sudo apt-get install samba
  1. 配置
# 添加账号
$ smbpasswd -a yourname     # 和当前ubuntu登录用户相同,记住密码# 修改配置文件
$ sudo vi /etc/samba/smb.conf
# 在最后一行后加入如下内容
[yourname]comment = yourname's project dirpath = /home/yournamebrowseable = yeswritable = yes# 重启samba,然后可以通过Windows + 虚拟机IP地址来访问
$ sudo /etc/init.d/smb restart

3. gitee账号注册

  1. 注册地址
    https://gitee.com/openharmony

  2. 绑定邮箱

  3. 签署开发者原创申明
    https://dco.openharmony.cn/sign-dco

4. 配置git和Repo

4.1 git配置

# 配置账号
$ git config --global user.name "yourname"    # 和gitee账号名一致
$ git config --global user.email "youremail@xyz"  # 和gitee注册邮箱一致
$ git config --global credential.helper store

4.2 Repo

  1. 下载码云repo
# 下载repo,如果有权限问题,使用sudo执行
$ curl -s https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 > ~/repo
$ cp ~/repo /usr/local/bin/
$ chmod a+x /usr/local/bin/repo 
$ pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
  1. repo下载源码
$ repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
# 由于网络原因,可能需要多次尝试
$ repo sync -c
$ repo forall -c 'git lfs pull'
  1. 执行prebuilts
# 在源码根目录下执行脚本,安装编译器及二进制工具。
$ bash build/prebuilts_download.sh

相关文章:

[环境搭建]OpenHarmony开发环境搭建

文章目录 1. 开发工具1.1 虚拟机1.2 Ubuntu镜像 2 虚拟机安装和配置2.1 虚拟机安装2.2 生成SSH KEY2.3 配置国内apt源&更新2.4 sh修改为bash2.5 下载OpenHarmony依赖工具2.6 python软链接2.7 samba配置 3. gitee账号注册4. 配置git和Repo4.1 git配置4.2 Repo 1. 开发工具 …...

[牛客习题]“幸运的袋子”

习题链接:幸运的袋子_牛客题霸_牛客网 题目分析 由题意可知:“幸运的袋子”的概念是——小球的数值之和大于小球的数值之积。 假如现在有5个小球:1,1,3,5,7,并将他们编号a0~a4.我们…...

安科瑞预付费系统在某大型连锁农贸市场的设计应用

安科瑞 崔丽洁 摘要 本远程预付费管理系统采用智能远程预付费电表(DTSY1352-NK/DDSY1352-NK系列),NB智能远传水表,采集各商户实时用电量、用电量总数,通过平台定时结算,结算账户余额,从而进行智…...

Spring Boot Bean 注入的常用方式教程

Spring Boot Bean 注入是一种将依赖对象引入到应用程序组件中的机制,它有助于实现松耦合和可测试的代码。这种注入方式允许我们将依赖关系委托给 Spring 容器来管理,从而提高了代码的可维护性和可读性。Spring Boot 提供了多种 Bean 注入方式&#xff0c…...

Java项目调用Python脚本(基于idea)

前期准备 1.首先需要在本地环境中安装配置python环境 Python(含PyCharm及配置)下载安装以及简单使用(Idea) 博主本次使用python版本为py3.7.3 2.idea安装python插件 位置:File->Settings->Plugins->python->安装后重启即可 3.引入jython依赖 &l…...

前端 JS 经典:i,i++,++i区别

1. 概念 用于对变量进行自增操作。它们的区别在于返回值不同。 i 表示先使用 i 的值,再将 i 加 1,返回的是 i 自增前的值。 i 表示先将 i 加 1,再使用 i 的值,返回的是 i 自增后的值。 i 表示直接使用 i 的值,不进…...

EF Core 7.0 新特性之批量修改

概要 EF Core 7.0 提供了一个可以将LINQ查询和批量修改相结合的方法ExecuteUpdate。由于数据修改是以批量更新的方式完成,所以可以减少数据库的往返次数。 本文将主要介绍ExecuteUpdate的使用方法。 代码和实现 基本案例 本文我们使用银行分行,ATM机…...

Vue_Bug error0308010Cdigital envelope routinesunsupported

Bug描述: error0308010Cdigital envelope routinesunsupported 解决方法: Just add this to the top of vue.config.js : const crypto require(crypto);/*** md4 algorithm is not available anymore in NodeJS 17 (because of lib SSL 3).* In that…...

中科院提出“思维传播”,极大增强ChatGPT等模型复杂推理能力

中国科学院自动化研究所与耶鲁大学计算机系研究人员联合发布了,一份名为《思维传播:用大型语言模型进行基于类比的复杂推理》的论文。 ChatGPT等大型语言模型展示出了超强的创造能力,只需简单的文本提示就能生成小说、营销创意、简历等各种文本内容。但…...

ubuntu20.04安装opencv 3.2.0 报错

安装记录 Error 1: cmake时报错 CMake Error at cmake/OpenCVCompilerOptions.cmake:21 (else): A duplicate ELSE command was found inside an IF block. Fix: 修改opencv-3.2.0/cmake/OpenCVCompilerOptions.cmake文件 注释掉21和22行 else()message(STATUS "Unabl…...

KubeVela交付

有什么用我也不想说了,这个是k8s CI/CD,进阶玩家玩的了,比你们喜欢Arg CD更科学,更现代 在 Kubernetes 中安装 KubeVela helm repo add kubevela https://charts.kubevela.net/core helm repo update helm install --create-namespace -n v…...

【SpringCloud-10】SCA-nacos

前言: 前面介绍的springcloud,可以看做第一代,称为:SCN(spring cloud Netflix); 接下来介绍的是第二代:SCA(spring cloud alibaba); SCA主要有以下组件&#…...

卡顿分析与布局优化

卡顿分析与布局优化 大多数用户感知到的卡顿等性能问题的最主要根源都是因为渲染性能。Android系统每隔大概16.6ms发出VSYNC信 号,触发对UI进行渲染,如果每次渲染都成功,这样就能够达到流畅的画面所需要的60fps,为了能够实现60fp…...

【Vivado HLS Bug】Ubuntu环境下Vivado HLS导出IP报错:HLS ERROR: [IMPL 213-28]

Export IP Invalid Argument / Revision Number Overflow Issue (Y2K22) (xilinx.com)一.问题描述: 在Ubuntu20.04环境中使用Vivado HLS导出IP时报错:HLS ERROR: [IMPL 213-28] 二.解决方法: 1.从如下链接中下载官方补丁Export IP Invalid…...

2022最新版-李宏毅机器学习深度学习课程-P14 批次(batch)与动量(momentum)

一、batch 回顾epoch、shuffle batch size大还是小?都有好处 大batchsize的好处 由于GPU有并行计算的能力,左边并不一定用时更长 反而是,batch size小的时候,要跑完一个epoch所用的update时间更长,所以时间方面的比较…...

谜题(Puzzle, ACM/ICPC World Finals 1993, UVa227)rust解法

有一个5*5的网格,其中恰好有一个格子是空的,其他格子各有一个字母。一共有4种指令:A, B, L, R,分别表示把空格上、下、左、右的相邻字母移到空格中。输入初始网格和指令序列(以数字0结束),输出指…...

acwing算法基础之数据结构--双链表

目录 1 知识点2 模板 1 知识点 一般的结构体写法为, struct BiListNode {int val;BiListNode *left;BiListNode *right; };但我们不用这个,而用数组模拟双链表,此时,用编号为0的结点表示头结点,用编号为1的结点表示尾…...

将中文名格式化输出为英文名

要求: 编写Java程序,输入样式为:Zhong wen ming的人名,以 Ming,Zhong.W 的形式打印出来。其中.W是中间单词的首字母;例如输入”Willian Jefferson Clinton“,输出形式为:Clinton,Willian.J public static …...

设计模式_迭代器模式

迭代器模式 介绍 设计模式定义案例迭代器模式行为型:关注对象与行为的分离 提供了一种统一的方式来访问多个不同的集合两个集合:使用了不同的数据存储方式 学生 和 警察 查询显示出集合的内容 ,使用相同的代码 问题堆积在哪里解决办法不同…...

【数据结构】:栈的实现

1 栈 1.1栈的概念及结构 栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则 压栈…...

低代码拖拽逻辑执行慢10倍?:用3个内存布局优化+1个opcode精简表,让RuleEngine吞吐量突破23,000 TPS

第一章:低代码拖拽逻辑执行慢10倍?:用3个内存布局优化1个opcode精简表,让RuleEngine吞吐量突破23,000 TPS低代码规则引擎在拖拽式策略编排场景下,常因对象频繁分配、字段间接寻址与冗余指令解析导致执行路径膨胀。我们…...

Qwen-Image-Layered场景实战:用AI图层技术为你的产品图换背景

Qwen-Image-Layered场景实战:用AI图层技术为你的产品图换背景 1. 引言 1.1 电商设计的痛点 在电商运营中,产品主图的质量直接影响转化率。传统换背景流程需要设计师手动抠图、调整边缘、匹配光影,一个产品图往往需要30分钟以上的处理时间。…...

MacBook上5分钟搞定Jmeter接口压测:从下载到脚本自动保存结果(附BeanShell代码)

MacBook高效接口压测指南:5分钟实现Jmeter自动化结果收集 每次遇到偶发性接口问题,手动点击上百次查看结果是不是让你抓狂?作为开发者,我们需要的不仅是工具,更是一套能自动完成脏活的解决方案。今天我们就来彻底解决…...

智能车PID调参实战:从电机到舵机的完整调试指南(附C代码)

智能车PID调参实战:从电机到舵机的完整调试指南(附C代码) 在智能车竞赛和自动化项目中,PID控制算法的调参往往是决定车辆性能的关键环节。无论是电机的转速控制还是舵机的转向精度,都需要通过精细的参数调整来实现快速…...

COMSOL实战:从微波炉到压电泵的多物理场魔法

comsol软件教程,电热力耦合,动网格,传热,优化,微波加热,压电(非comsol官网搬运) comsol仿真教程,多物理场,建模仿真,低频电磁今天咱们来点硬核的—…...

​源码级赋能:基于Spring Boot/Vue的企业级AI视频平台二次开发实战与架构解析(GB28181/边缘计算/算法商城)

引言:从“黑盒采购”到“源码可控”的行业变革 在安防集成商和技术决策者的会议室里,有一个共识正在形成:“黑盒软件”正在成为企业数字化转型的枷锁。 传统的视频监控软件往往依赖特定的硬件锁(Key)或封闭的API&…...

边缘计算那些事儿——从协同视角看卸载策略

1. 边缘计算卸载技术入门指南 第一次听说"边缘计算卸载"这个概念时,我正被一个智能家居项目搞得焦头烂额。当时需要在摄像头端做人脸识别,但嵌入式设备的算力根本跑不动深度学习模型。直到同事提醒:"为什么不试试把计算任务卸…...

SecGPT-14B部署教程:适配国产昇腾910B的vLLM分支编译与性能调优

SecGPT-14B部署教程:适配国产昇腾910B的vLLM分支编译与性能调优 1. SecGPT-14B简介 SecGPT是由云起无垠推出的开源大语言模型,专注于网络安全领域。该模型融合了自然语言理解、代码生成和安全知识推理等能力,旨在为安全专业人员提供智能辅助…...

卡证检测矫正模型实战教程:中文Web界面全功能图文操作指南

卡证检测矫正模型实战教程:中文Web界面全功能图文操作指南 1. 引言:为什么你需要这个工具? 想象一下,你手头有一堆身份证、护照或者驾照的照片,它们可能角度歪斜、背景杂乱,甚至有些反光。你需要从中提取…...

终极指南:5个实用技巧解决Rainmeter开发中的内存保护异常问题

终极指南:5个实用技巧解决Rainmeter开发中的内存保护异常问题 【免费下载链接】rainmeter Desktop customization tool for Windows 项目地址: https://gitcode.com/gh_mirrors/ra/rainmeter 在Rainmeter桌面定制工具的开发过程中,内存保护异常&a…...