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

一键自动化配置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 InRelease
  The 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、一切拥抱开源,拥抱国产化


http://www.kler.cn/a/323866.html

相关文章:

  • 【大数据学习 | HBASE高级】hive操作hbase
  • 算法魅力-二分查找实战
  • 制作图片马常用的五种方法总结
  • Python sys模块介绍
  • 31-Shard Allocation Awareness(机架感知)
  • H.265流媒体播放器EasyPlayer.js H.264/H.265播放器chrome无法访问更私有的地址是什么原因
  • 花都狮岭寄宿自闭症学校:开启孩子的生命之门
  • 给Ubuntu虚拟机设置静态IP地址(固定IP)
  • 基于ASRPRO的语音应答
  • 基于php的在线租房管理系统
  • 如何使用Apache Kafka处理实时数据
  • 探究Spring的单例设计模式--单例Bean
  • 主从蓝牙配对_笔记(HC-05)
  • 阿里云图形化管理工具(oss-browser、oss浏览器、AcceassKeyId、AccessKeySecret)
  • Android 点击其他组件让输入框失去焦点
  • 基于php摄影门户网站
  • 手游和应用出海资讯:三七新游首月收入突破700万元;领英尝试推出游戏功能以增加用户使用时长
  • leetcode:LCR 169. 招式拆解 II(python3解法)
  • 智能Ai语音机器人的应用价值有哪些?
  • 【逐行注释】扩展卡尔曼滤波EKF和粒子滤波PF的效果对比,MATLAB源代码(无需下载,可直接复制)
  • window下 php 安装 lua扩展
  • Docker容器的使用
  • 银河麒麟v10 x86制作openssh 9.9p1 rpm二进制包(内含ssh-copy-id、显示openssl版本) —— 筑梦之路
  • 初始爬虫9
  • SSE协议
  • 如何使用ssm实现校园体育赛事管理系统的设计与实现+vue