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

一键自动化配置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状态查看某个监听端口是否存在设置局部代理查找关键字相关进程根据日常所需&#xff0c;持续更新 shell工具 减少重复性工作&#xff0c;简化工作流程&#xff0c;提高工作效率 将所编写的shell脚本赋予可执行权限 chmod x <脚本文件> 在…...

MySQL之基础篇

数据库操作 1.查看当前的数据库版本 select version(); 2.显示所有数据库 show databases; 3.创建数据库 create [if not exists] database 数据库名 character set 字符编码集 collate 排序规则&#xff1b; 我们这里提前说一下 被方括号括起来的代码 表示可写可不写 示例…...

13年408计算机考研-计算机网络

第一题&#xff1a; 解析&#xff1a;OSI体系结构 OSI参考模型&#xff0c;由下至上依次是&#xff1a;物理层-数据链路层-网络层-运输层-会话层-表示层-应用层。 A.对话管理显然属于会话层&#xff0c; B.数据格式转换&#xff0c;是表示层要解决的问题&#xff0c;很显然答案…...

camera2 + MediaRecorder 实现的分段循环录像功能

硬件设备Android系统 8.1&#xff1b; 硬件设备上开发过程中的问题记录&#xff1a; 问题1. 长时间录像后发现保存的录像文件始终只有4G。 原因及解决&#xff1a;Android 11之前的系统有对保存的文件大小有限制&#xff0c;所以只能修改成分段保存&#xff0c;即录像文件3.…...

LeetCode 每日一题 2024/9/23-2024/9/29

记录了初步解题思路 以及本地实现代码&#xff1b;并不一定为最优 也希望大家能一起探讨 一起进步 目录 9/23 2414. 最长的字母序连续子字符串的长度9/24 2207. 字符串中最多数目的子序列9/25 2306. 公司命名9/26 2535. 数组元素和与数字和的绝对差9/27 2516. 每种字符至少取 K…...

知识付费APP开发指南:基于在线教育系统源码的技术详解

本篇文章&#xff0c;我们将探讨基于在线教育系统源码的知识付费APP开发的技术细节&#xff0c;帮助开发者和企业快速入门。 一、选择合适的在线教育系统源码 选择合适的在线教育系统源码是开发的关键一步。市场上有许多开源和商业化的在线教育系统源码&#xff0c;开发者需要…...

物联网智能项目全面解析

目录 引言 一、物联网概述 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轮播组件与样式结构重用

序言&#xff1a; 本文详细讲解了关于我们在页面上经常看到的轮播图在鸿蒙开发中如何用Swiper实现&#xff0c;介绍了Swiper的基本用法与属性&#xff0c;及如何面对大段的重复代码进行封装和重用&#xff08;Extend、Styles、Builder&#xff09;&#xff0c;使代码更加简洁易…...

Springboot3保存日志到数据库

保存日志到数据库 请求日志几乎是所有大型企业级项目的必要的模块&#xff0c;请求日志对于我们来说后期在项目运行上线一段时间用于排除异常、请求分流处理、限制流量等。请求日志一般都会记录请求参数、请求地址、请求状态&#xff08;Status Code&#xff09;、SessionId、…...

叉车高位显示器无线摄影,安装更加便捷!

叉车叉货&#xff0c;基本功能&#xff0c;但货叉升降高度确不一定&#xff0c;普通的3米左右&#xff0c;高的十几米&#xff0c;特别是仓储车&#xff0c;仓库叉货空间小&#xff0c;环境昏暗&#xff0c;视线受阻严重&#xff0c;司机叉货升的那么高怎么准确无误的插到货呢&…...

10个UTF8-CPP最佳实践:让你的C++ Unicode处理更高效

10个UTF8-CPP最佳实践&#xff1a;让你的C Unicode处理更高效 【免费下载链接】utfcpp UTF-8 with C in a Portable Way 项目地址: https://gitcode.com/gh_mirrors/ut/utfcpp UTF8-CPP是一个轻量级的C库&#xff0c;提供了便捷的UTF-8编码和解码功能&#xff0c;帮助开…...

数据与大语言模型融合:从NL2SQL到RAG架构的实践指南

1. 项目概述&#xff1a;当数据遇见大语言模型如果你是一名数据工程师、数据分析师&#xff0c;或者任何需要和数据打交道的开发者&#xff0c;最近肯定被“大语言模型”和“数据智能”这两个词轮番轰炸。我们手里有海量的数据&#xff0c;从结构化的业务表到非结构化的日志、文…...

开源项目质量门禁实践:从代码规范到安全扫描的自动化检查

1. 项目概述&#xff1a;一个开源项目的“守门人”最近在整理自己的开源项目时&#xff0c;我一直在思考一个问题&#xff1a;如何确保项目仓库的“健康度”&#xff1f;这里的健康度&#xff0c;不仅仅是指代码没有Bug&#xff0c;更是指整个项目的协作流程、代码质量、依赖安…...

面向高校的基于算法的发明专利申请写作方法

发明专利作为国家和高校认可的成果形式之一&#xff0c;其申请和授权一直受到教师和学生们的高度重视&#xff1b;基于算法的发明专利作为发明专利的重要分支&#xff0c;每年都有大量的算法专利被授权或者拒绝。虽然高校的教师对论文写作非常熟悉&#xff0c;但是发明专利的写…...

嵌入式游戏开发实战:在4x8 LED点阵上用CircuitPython复刻FlappyBird

1. 项目概述&#xff1a;在4x8的像素矩阵上“复活”FlappyBird如果你玩过嵌入式开发&#xff0c;尤其是用那些小巧的微控制器板子&#xff0c;可能会觉得游戏开发离它们很远——资源有限&#xff0c;没有图形库&#xff0c;怎么搞&#xff1f;但恰恰是这种限制&#xff0c;最能…...

AI应用开发利器:NeuroAPI网关统一管理多模型调用与智能路由

1. 项目概述&#xff1a;一个面向AI应用开发者的API网关最近在折腾AI应用开发的朋友&#xff0c;估计都绕不开一个核心痛点&#xff1a;如何高效、稳定地管理多个不同厂商、不同模型的AI服务调用。无论是OpenAI的GPT系列、Anthropic的Claude&#xff0c;还是国内外的各种大模型…...

WinAuth加密机制详解:如何保护你的认证密钥安全 [特殊字符]

WinAuth加密机制详解&#xff1a;如何保护你的认证密钥安全 &#x1f510; 【免费下载链接】winauth Authenticator on Windows for Battle.net / Steam / Guild Wars 2 / Glyph / Runescape / SWTOR / Bitcoin and digital currency exchanges 项目地址: https://gitcode.co…...

会议录播堆积如山?用这款AI工具3分钟自动生成会议纪要

一个很普遍的职场痛点&#xff1a;每周开3-4个会&#xff0c;录播存了一堆&#xff0c;但从来没有整理过。 不是不想整理&#xff0c;是整理一小时的会议录像至少要40分钟——要从头拉一遍、要标重点、要区分谁说了什么、要提炼行动项。忙的时候根本没时间干这个。 结果就是&…...

开源技能库OpenClaw-Skill:构建标准化自动化技能模块的实践指南

1. 项目概述&#xff1a;从“OpenClaw-Skill”看开源技能库的构建与集成最近在社区里看到brabaflow/openclaw-skill这个项目&#xff0c;第一眼就被它的名字吸引了。“OpenClaw”听起来像是一个开源版的“机械爪”&#xff0c;而“Skill”则指向了技能或能力。这让我立刻联想到…...

2026届最火的AI论文助手解析与推荐

Ai论文网站排名&#xff08;开题报告、文献综述、降aigc率、降重综合对比&#xff09; TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 在人工智能生成内容&#xff08;AIGC&#xff09;技术迅猛发展之际&#xff0c;它一方面提升…...