一键自动化配置OpenHarmony编译环境
一、概述
本工程旨在对Ubuntu一键初始化配置环境,解决OpenHarmony的编译依赖问题,基于本脚本配置后配合一键下载OpenHarmony代码便能轻松掌控OpenHarmony的下载、编译。
当前建议使用稳定分支Itopen-2.0-Release,该分支是经过多次测试OK的,master分支可能随时会重构导致使用存在问题。
二、配置前说明
当前脚本支持以下版本,新的版本还在适配计划中:
Ubuntu18.04
Ubuntu20.04
Ubuntu22.04
强烈推荐Ubuntu20.04,这既是OpenHarmony推荐的版本,也是小编当前使用的版本。
三、一键自动化配置
3.1 自动化配置脚本介绍
当前脚本实现的配置功能如下,系统配置管理员只要执行root环境配置即可,个人账号只要执行用户环境配置即可,强烈不建议开发者直接使用root账号直接开发:
root环境配置:必须是root账号或者具备root权限的账号
配置/etc/apt/sources.list为国内源
修改/usr/bin/sh链接/bin/bash
安装基础软件
安装git lfs
安装repo
创建/usr/include/asm链接/usr/include/x86_64-linux-gnu/asm
用户环境配置:没有用户限制
- 配置.bashrc中的PS1
- 配置tools小工具
- 配置ssh
- 配置git
- 配置vim
- 配置python3的下载源
- 配置hb
独立的功能环境配置:必须是root账号或者具备root权限的账号
- 配置/etc/apt/sources.list为国内源
- 修改/usr/bin/sh链接/bin/bash
- 创建/usr/include/asm链接/usr/include/x86_64-linux-gnu/asm
- 安装基础软件
- 配置vim
其中的vim是个人的配置,不需要可以安装完成后删除/.vim和/.vimrc即可,关于vim的操作可参考:我的个人vim
3.2 自动化脚本使用
apt-get -f -y install ssh # ssh连接服务器必备, 直接在本机上操作可不用提前安装
apt-get -f -y install net-tools # ssh连接服务器必备, 直接在本机上操作可不用提前安装
apt-get -f -y install git
apt-get -f -y install dos2unix
git clone https://gitee.com/itopen/openharmony_env_init.git
cd openharmony_env_init
./build.sh
*******************************************
* Welcome to init Ubuntu environment *
* Please Choice Init Mode: *
* Install root environment prese 1.1 *
* Install user environment prese 1.2 *
* Update Source List prese 1.3 *
* Update sh to bash prese 1.4 *
* Create /usr/include/asm prese 1.5 *
* Apt Install Base Software prese 1.6 *
* Init myvim config prese 1.7 *
*******************************************
1.1 # 输入你想操作的选项,然后根据提示一步步操作即可
四、常见文件定位和说明
4.1 Ubuntu18.04一键配置环境问题说明
4.1.1 pip3版本问题
==================================================
pip3 版本9.0.1太低, 不支持通过config配置python国内源方法
==================================================
该步骤是设置python3的下载源为国内源,但是由于Ubuntu18.04的pip3版本太低了,不支持pip3 config命令,所以设置失败,不过这不影响使用,如果想成功设置可以将Ubuntu18.04的python3升级到python3.8以上,同时将pip3也同步升级后即可。
4.1.2 python3版本问题
===================================================================
Ubuntu18.04默认python3版本python3.6是太低了, 请将版本升级到python3.8或以上
===================================================================
该步骤是配置hb命令时报错,OpenHarmony的hb安装要求python3的最低版本要求是python3.8,而Ubuntu18.04的python3默认版本是python3.6,如果需要配置hb需要将python3升级到python3.8或者python3.10,不要更高,否则Ubuntu18.04可能不支持。hb命令会影响到小型系统(L1)和轻量型系统(L0)的编译,不影响标准系统(L2)的编译。
4.2 在Ubuntu22.04初始化root环境时报错git-lfs的问题
运行1.1的root初始化环境时出现如下问题
Err:9 https://packagecloud.io/github/git-lfs/ubuntu jammy InReleaseThe following signatures couldn't be verified because the public key is not available: NO_PUBKEY 6B05F25D762E3157
Reading package lists... Done
W: GPG error: https://packagecloud.io/github/git-lfs/ubuntu jammy InRelease: The following signatures couldn't be veri fied because the public key is not available: NO_PUBKEY 6B05F25D762E3157
E: The repository 'https://packagecloud.io/github/git-lfs/ubuntu jammy InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.
该问题是因为替换/etc/apt/sources.list之前安装了git-lfs,在替换sources.list后不能识别之前的public key,解决办法是执行sudo apt-get autoremove git-lfs命令后再初始化环境,如果遇到类似的情况,同样处理。
itopen 组织
1、提供 OpenHarmony 优雅实用的小工具
2、手把手适配 riscv + qemu + linux 的三方库移植
3、未来计划 riscv + qemu + ohos 的三方库移植 + 小程序开发
4、一切拥抱开源,拥抱国产化
相关文章:
一键自动化配置OpenHarmony编译环境
一、概述 本工程旨在对Ubuntu一键初始化配置环境,解决OpenHarmony的编译依赖问题,基于本脚本配置后配合一键下载OpenHarmony代码便能轻松掌控OpenHarmony的下载、编译。 当前建议使用稳定分支Itopen-2.0-Release,该分支是经过多次测试OK的&…...
不同领域的常见 OOD(Out-of-Distribution)数据集例子
以下是几个来自不同领域的常见 OOD(Out-of-Distribution)数据集例子,这些数据集常用于测试和研究模型在分布变化或分布外数据上的泛化能力: 1. 计算机视觉领域 CIFAR-10 vs. CIFAR-10-C / CIFAR-100-C: 描述:CIFAR-10…...
gRPC协议简介
gRPC 是谷歌开源的一套 RPC 协议框架。主要做两件事情:一是数据编码,二是请求映射。 数据编码 数据编码顾名思义就是在将请求的内存对像转化成可以传输的字节流发给服务端,并将收到的字节流再转化成内存对像。方法有很多,常见的…...
[dp+dfs]砝码称重
题目描述 现有 n n n 个砝码,重量分别为 a 1 , a 2 , … , a n a_1, a_2, \ldots,a_n a1,a2,…,an ,在去掉 m m m 个砝码后,问最多能称量出多少不同的重量(不包括 0 0 0 )。 输入格式 第一行为有两个整数…...
MYSQL-查看表中字段属性语法(三)
查看表中字段全部信息 show full columns from database_name.table_name; show full columns from table_name;示例 mysql> show full columns from world.city; ----------------------------------------------------------------------------------------------------…...
第三讲 part 3:前端处理LINK3D - 代码解析 - 从main出发看总体流程(ROS1改为ROS2)
目录 1. ROS1 ->ROS21.1 包含头文件1.2 全局变量定义1.3 结构体定义1.4 点云容器定义1.5 图像处理相关变量1.6 ROS2发布者和订阅者定义1.7 全局变量,被不断更新1.8 点云处理相关变量1.9 图像描述符1.10 主函数1.10.1. 初始化ROS21.10.2. 创建节点1.10.3. 声明参数1.10.4. 设…...
移情别恋c++ ദ്ദി˶ー̀֊ー́ ) ——15.红黑树
1.红黑树的概念 红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或 Black。 通过对任何一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路 径会比其他路径长出俩倍,…...
【C++】Eclipse技巧汇总
Eclipse C/C调试无法输入 在debug C/C程序时,Eclipse自带的窗口,无法读取cin等输入 解决办法: 参考:https://blog.csdn.net/sagjhdj/article/details/123271383 思路是调用外部console: 依次点击Debug>Debug Conf…...
Golang | Leetcode Golang题解之第430题扁平化多级双向链表
题目: 题解: func dfs(node *Node) (last *Node) {cur : nodefor cur ! nil {next : cur.Next// 如果有子节点,那么首先处理子节点if cur.Child ! nil {childLast : dfs(cur.Child)next cur.Next// 将 node 与 child 相连cur.Next cur.Chi…...
Java实现找色和找图功能
某天,张三接到一个任务需求,将一个Excel表格里面的员工信息,录入到员工系统里面,由于数据量非常大,操作起来巨慢。经过一段时间的操作和观察,他发现这种操作,非常有规律,基本就是一些…...
linux脚本工具
目录 shell工具查看Nvidia GPU状态查看某个监听端口是否存在设置局部代理查找关键字相关进程根据日常所需,持续更新 shell工具 减少重复性工作,简化工作流程,提高工作效率 将所编写的shell脚本赋予可执行权限 chmod x <脚本文件> 在…...
MySQL之基础篇
数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…...
13年408计算机考研-计算机网络
第一题: 解析:OSI体系结构 OSI参考模型,由下至上依次是:物理层-数据链路层-网络层-运输层-会话层-表示层-应用层。 A.对话管理显然属于会话层, B.数据格式转换,是表示层要解决的问题,很显然答案…...
camera2 + MediaRecorder 实现的分段循环录像功能
硬件设备Android系统 8.1; 硬件设备上开发过程中的问题记录: 问题1. 长时间录像后发现保存的录像文件始终只有4G。 原因及解决:Android 11之前的系统有对保存的文件大小有限制,所以只能修改成分段保存,即录像文件3.…...
LeetCode 每日一题 2024/9/23-2024/9/29
记录了初步解题思路 以及本地实现代码;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/23 2414. 最长的字母序连续子字符串的长度9/24 2207. 字符串中最多数目的子序列9/25 2306. 公司命名9/26 2535. 数组元素和与数字和的绝对差9/27 2516. 每种字符至少取 K…...
知识付费APP开发指南:基于在线教育系统源码的技术详解
本篇文章,我们将探讨基于在线教育系统源码的知识付费APP开发的技术细节,帮助开发者和企业快速入门。 一、选择合适的在线教育系统源码 选择合适的在线教育系统源码是开发的关键一步。市场上有许多开源和商业化的在线教育系统源码,开发者需要…...
物联网智能项目全面解析
目录 引言 一、物联网概述 1.1 什么是物联网 1.2 物联网的历史与发展 二、物联网智能项目分类 三、关键组件与技术 3.1 传感器和执行器 3.2 连接技术 3.3 数据处理与分析 3.4 用户界面 四、物联网智能项目案例分析 4.1 智能家居 4.2 智慧城市 4.3 工业物联网 4.4…...
【07】纯血鸿蒙HarmonyOS NEXT星河版开发0基础学习笔记-Swiper轮播组件与样式结构重用
序言: 本文详细讲解了关于我们在页面上经常看到的轮播图在鸿蒙开发中如何用Swiper实现,介绍了Swiper的基本用法与属性,及如何面对大段的重复代码进行封装和重用(Extend、Styles、Builder),使代码更加简洁易…...
Springboot3保存日志到数据库
保存日志到数据库 请求日志几乎是所有大型企业级项目的必要的模块,请求日志对于我们来说后期在项目运行上线一段时间用于排除异常、请求分流处理、限制流量等。请求日志一般都会记录请求参数、请求地址、请求状态(Status Code)、SessionId、…...
叉车高位显示器无线摄影,安装更加便捷!
叉车叉货,基本功能,但货叉升降高度确不一定,普通的3米左右,高的十几米,特别是仓储车,仓库叉货空间小,环境昏暗,视线受阻严重,司机叉货升的那么高怎么准确无误的插到货呢&…...
WubiUEFI终极指南:如何在Windows中零风险安装Ubuntu系统
WubiUEFI终极指南:如何在Windows中零风险安装Ubuntu系统 【免费下载链接】wubiuefi fork of Wubi (https://launchpad.net/wubi) for UEFI support and for support of recent Ubuntu releases 项目地址: https://gitcode.com/gh_mirrors/wu/wubiuefi 你是否…...
Z-Image-GGUF模型量化与压缩教程:在低显存GPU上运行大模型
Z-Image-GGUF模型量化与压缩教程:在低显存GPU上运行大模型 想用AI生成图片,但一看模型大小和显存要求就头疼?手头只有一张8GB显存的消费级显卡,是不是就只能和那些功能强大的图像生成模型说再见了? 别急着放弃。今天…...
Electron + Vue 3 + Vite 桌面应用开发:从零到打包的实战指南
1. 为什么选择Electron Vue 3 Vite组合 如果你正在寻找一种既能快速开发又能保证性能的桌面应用解决方案,Electron Vue 3 Vite的组合绝对值得考虑。这个组合最大的优势在于开发体验的提升,特别是对于那些已经熟悉Vue生态的开发者来说。 Vite带来的开…...
FunASR Docker部署避坑大全:从SSL证书报错到热词不生效,一次解决所有常见问题
FunASR Docker实战排障指南:从证书配置到热词优化的深度解决方案 当你第一次尝试在Docker环境中部署FunASR语音识别服务时,那些看似简单的命令行参数背后可能藏着无数个"坑"。本文不会重复官方文档的基础操作,而是聚焦于五个最具代…...
CH340/CH341安卓USB主机模式开发实战
1. CH340/CH341安卓USB主机模式开发入门 很多开发者第一次接触安卓USB主机模式开发时,都会遇到一个典型问题:为什么我的手机连上CH340模块后毫无反应?这通常是因为安卓设备默认工作在从机模式(USB Device Mode),而连接串口设备需要…...
数据中台是什么?怎么搭建数据中台?
去年,一家零售企业的CEO找到我,说了一句让我印象很深的话: "我们公司有数据,但没有数据能力。"很多企业建数据中台,是为了管好数据。 但这个出发点,从一开始就错了。 数据中台的核心不是管理&…...
视频格式转换革新:m4s-converter让B站缓存视频无缝播放
视频格式转换革新:m4s-converter让B站缓存视频无缝播放 【免费下载链接】m4s-converter 一个跨平台小工具,将bilibili缓存的m4s格式音视频文件合并成mp4 项目地址: https://gitcode.com/gh_mirrors/m4/m4s-converter 从缓存困境到自由播放&#x…...
2026学生免费用AI编程神器全攻略——白嫖不要白不要,大学生快来
好的,上一章刚教你用GitHub武装自己,筑起技术护城河,但光会搬砖(敲命令)还不够,你得学会“开高达”——用AI编程助手把效率拉满。 2026年了,如果还纯靠手打for循环和查API文档,那你…...
别再手动调格式了!用C#和FastReport.Net搞定标签批量打印与90度旋转(附完整源码)
C#与FastReport.Net实战:打造高可用的标签批量打印与旋转解决方案 在仓储管理、物流配送和零售价签打印等场景中,开发人员经常需要处理各种规格的标签打印需求。传统的手动调整方式不仅效率低下,而且难以应对频繁变化的业务需求。本文将分享如…...
Phi-4-mini-reasoning部署实操手册:supervisor服务管理与日志排查指南
Phi-4-mini-reasoning部署实操手册:supervisor服务管理与日志排查指南 1. 模型概述 Phi-4-mini-reasoning 是一个专注于推理任务的文本生成模型,特别适合处理数学题、逻辑题、多步分析和简洁结论输出。与通用聊天模型不同,它采用"题目…...
