【笔记】通过码云Gitee获取OpenHarmony源码

Note:下面包含操作过程和问题解决(首次安装Ubuntu,环境未完善),没有遇到问题可以直接跳过问题part了,小白也能完成配置下载。

前置准备(Git环境账号)

(一)安装git客户端

本地虚拟机用Ubuntu(其他Linux命令不同)

# 基于 Debian 的发行版上,如 Ubuntu,使用 apt 下载
$ sudo apt install git-all
【Ubuntu】Git 安装指令
【Ubuntu】Git 安装指令

输入y确认安装,

【Ubuntu】Git 安装提示确认
【Ubuntu】Git 安装提示确认

安装完成

【Ubuntu】Git 安装完成提示
【Ubuntu】Git 安装完成提示

(二)安装git-lfs

Git LFS is a command line extension and specification for managing large files with Git.

The client is written in Go, with pre-compiled binaries available for Mac, Windows, Linux, and FreeBSD. Check out the website for an overview of features.

Git LFS 是Git的一个扩展,旨在更有效地处理大型文件。

  • Linux users. Debian and RPM packages are available from PackageCloud.
【packagecloud】git-lfs(github)
【packagecloud】git-lfs(github)

  • Binary packages. In addition, binary packages are available for Linux, macOS, Windows, and FreeBSD.

GitHub比较难访问上。

【GitHub】git-lfs 仓库
【GitHub】git-lfs 仓库

sudo apt-get install git-lfs

(三)配置Gitee码云用户信息

查看当前git账户信息,不配置时是没有任何信息的,

git config --global user.name "yourname"
git config --global user.email "your-email-address"
git config --global credential.helper store

(四)安装码云repo工具

创建目录并在此路径下安装

# 创建“~/bin”目录(可自定义,如下bin目录创建在与desktop同级)
mkdir ~/bin

# 安装码云repo工具
curl https://gitee.com/oschina/repo/raw/fork_flow/repo-py3 -o ~/bin/repo 

# 修改repo权限
chmod a+x ~/bin/repo

# 安装包(可通过pip3 install --help 查看指令使用手册)
pip3 install -i https://repo.huaweicloud.com/repository/pypi/simple requests
 创建目录及正常安装过程

1、创建bin文件夹并查看。终端路径默认是Desktop,因此“~/”会在与Desktop同一目录。

2、安装repo工具(前提是安装好curl,若未完成所需工具安装,下文有报错解决,终端也一样有解决提示)

3、授权

【Ubuntu】repo权限查看
【Ubuntu】repo权限查看

Note:pip3使用手册介绍 

环境问题:安装时curl等报错解决
执行curl命令报错
【Ubuntu】执行curl 安装命令报错

报错提示:

Command 'curl' not found, but can be installed with:

sudo snap install curl  # version 8.1.2, or
sudo apt  install curl  # version 7.68.0-1ubuntu2.20

See 'snap info curl' for additional versions.

根据提示Ubuntu使用以下命令,输入密码并y确认安装

sudo apt  install curl # version 7.68.0-1ubuntu2.20
【Ubuntu】安装curl指令和提示
【Ubuntu】安装curl指令和提示

问题:安装报错了

问题:如下使用apt-get也是同样的错误,应该要先更新

解决方案:应该要先执行下面命令更新

sudo apt-get update #先更新,后安装
【Ubuntu】安装前执行update
【Ubuntu】安装前执行update

然后curl安装成功了:

【Ubuntu】安装curl成功提示
【Ubuntu】安装curl成功提示

(五)将repo添加到环境变量

vim ~/.bashrc               # 编辑环境变量
export PATH=~/bin:$PATH     # 在环境变量的最后添加一行repo路径信息
source ~/.bashrc            # 应用环境变量

1、输入“vim ~/.bashrc”进入配置文件编辑

2、在环境变量的最后添加一行repo路径信息:export PATH=~/bin:$PATH

3、应用环境变量,使配置生效

环境问题:缺少vim

安装完成,可以编辑了,

※下载步骤

 说明:

  • 发布版本代码相对比较稳定,开发者可基于发布版本代码进行商用功能开发。
  • Master主干为开发分支,开发者可通过Master主干获取最新特性。

(一)OpenHarmony发布版本代码获取

方式请参考Release Notes,当前已更新到4。

OpenHarmony Release Note
OpenHarmony Release Note

(二)OpenHarmony主干代码获取

方式一(推荐):通过repo + ssh下载

(需注册公钥,请参考码云帮助中心)。

repo init -u git@gitee.com:openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

 repo初始化仓库,指定master分支

-c, –current-branch:只同步指定的远程分支。默认情况下,sync会同步所有的远程分支,当远程分支比较多的时候,下载的代码量就大。使用该参数,可以缩减下载时间,节省本地磁盘空间。 

方式二:通过repo + https下载。
repo init -u https://gitee.com/openharmony/manifest.git -b master --no-repo-verify
repo sync -c
repo forall -c 'git lfs pull'

问题1:没有python

报错提示:/usr/bin/env: ‘python’: No such file or directory

先查看当前python版本,确认是否真的没有python。

# 用于查看python版本的指令
python -V 
python --version

python # 进入python了

没有python,但是有python3(可按提示执行python3)。看来系统默认安装的是python3版本,

【Ubuntu】查看python版本号
【Ubuntu】查看python版本号

Note:如果环境中安装了2和3,分别区分 python2 -V 和python3 -V

解决:从版本查看确定系统已经安装了python,那么将Python 3.8设置为默认Python版本即可。

#1. 查看python3.8的路径
which python3.8 

#2. 将Python和Python3切换为Python 3.8
sudo update-alternatives --install /usr/bin/python python {Python 3.8 路径} 1
#{Python 3.8 路径}为上一步查看的Python 3.8的位置

#本机例子,不要漏了1
#使用手册 update-alternatives: --install needs <link> <name> <path> <priority>
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.8 1

sudo update-alternatives --install /usr/bin/python3 python3 {Python 3.8 路径} 1

1、先查看python3.8的路径(上面提示版本3.8.10,但查看路径使用python3.8,没有空格的)

Note:也能直接进入/usr/bin目录下查看python全部情况,如下系统已经安装python和python3.8这两种。

2、将python和python3切换为Python 3.8(按需可选是否配置python3),不要漏了1。

Note:Debian系列(Ubuntu是其子类)update-alternatives工具用于在多个同功能的软件,或软件的多个不同版本间选择。

问题2:SSH公钥未配置,repo fail

解决方案:参考码云Gitee的 「仓库管理」->「公钥管理」 章节。

Note:.ssh key的类型有四种,分别是dsa、rsa、 ecdsa、ed25519。如上使用的是ed25519,也可以替换成比较常用的rsa。

1、在Ubuntu虚拟机生成sshkey
ssh-keygen -t ed25519 -C "xxxxx@xxx.com"  
# Generating public/private ed25519 key pair...

会提示生成公钥.pub文件的路径。

2、在Gitee账户添加公钥配置

根据上述提示路径,可查看用户 ~/.ssh/id_ed25519.pub 文件内容,获取到自己的 public key(公钥)。

复制生成后的 ssh key,通过主页右上角 「个人设置」->「安全设置」->「SSH公钥」->「添加公钥」 ,添加生成的 public key 添加到当前账户中。(标题可自定义,需要输入Gitee密码验证。)

项目部署用:仓库主页 「管理」->「部署公钥管理」->「添加部署公钥」 ,添加生成的 public key 添加到仓库中。

重新下载还是报错,需要配置本地git账户信息,按指令执行就好了。

Other

安装库和工具集

下载OpenHarmony的过程中报错缺少xxx,因此安装需要的库和工具(如果是从头开始新建一台虚拟机的话)。

Ubuntu 使用如下apt-get命令安装后续操作所需的库和工具:

sudo apt-get install binutils binutils-dev git git-lfs gnupg flex bison gperf
build-essential zip curl zlib1g-dev libc6-dev-i386 lib32ncurses5-dev x11protocore-dev libx11-dev lib32z1-dev ccache libgl1-mesa-dev libxml2-utils xsltproc
unzip m4 bc gnutls-bin python3.8 python3-pip ruby genext2fs device-tree-compiler
make libffi-dev e2fsprogs pkg-config perl openssl libssl-dev libelf-dev libdwarfdev u-boot-tools mtd-utils cpio doxygen liblz4-tool openjdk-8-jre gcc g++ texinfo
dosfstools mtools default-jre default-jdk libncurses5 apt-utils wget scons
python3.8-distutils tar rsync git-core libxml2-dev lib32z-dev grsync xxd
libglib2.0-dev libpixman-1-dev kmod jfsutils reiserfsprogs xfsprogs squashfstools pcmciautils quota ppp libtinfo-dev libtinfo5 libncurses5-dev libncursesw5
libstdc++6 gcc-arm-none-eabi vim ssh locales libxinerama-dev libxcursor-dev
libxrandr-dev libxi-dev


sudo apt-get install gcc-arm-linux-gnueabi gcc-9-arm-linux-gnueabi

结合ubuntu虚拟机安装配置,包含但不限于,主要是目前遇到的:

  • make gcc perl
  • git-lfs
  • curl
  • vim
  • python

同步指定分支代码命令

如OpenHarmony-4.1-Beta1

repo init -u https://gitee.com/openharmony/manifest -b OpenHarmony-4.1-Beta1 --no-repo-verify

查看目录大小,repo init完成4.1Beta1的只有11M(4x在同步代码)

du -sh ./* #查看当前目录内存占用

OpenHarmony版本

OpenHarmony Stable Version类型的源码为OpenHarmony稳定版本源码,通过镜像站点获取,支持:

  • OpenHarmony-v3.0.3-LTS、
  • OpenHarmony-v3.1-Release、
  • OpenHarmony-v3.2-Beta3、
  • OpenHarmony-v3.2-Beta4、
  • OpenHarmony-v3.2-Beta5、
  • OpenHarmony-v3.2-Release版本。

获取OpenHarmony对应版本的最新源码,请参考从码云仓库获取源码。

获取源码后,参考 《HUAWEI DevEco Device Tool 使用指南》的“导入OpenHarmony源码”章节,可在DevEco Device Tool 中导入源码。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Effective-C++阅读解析条款(条款二:尽量以const,enum,inline替换#define)

个人主页&#xff1a;Lei宝啊 愿所有美好如期而遇 书中说这个条款或许改为“宁可以编译器替换预处理器”比较好&#xff0c;这句话在我看来原因是这样的&#xff1a; 如果我们有这样一个宏(假设写这个宏的人比较粗心)&#xff1a;#define Add(x, y) x y 我们本意是想得到…

“创新强基·应用强链”2024第104届上海电子展会

2024第104届上海电子展会 2024 Shanghai electron Expo 时间:2024年11月18--20日 地点:上海新国际博览中心 主题:创新强基应用强链 上海与长三角各地产业协同发展&#xff0c;到2025年&#xff0c;初步建成具有全球影响力和竞争力的世界级电子信息产业集群。产业链稳定性和韧…

黄金票据制作

1、黄金票据 黄金票据在内网渗透中主要用于权限维持&#xff0c;即留下后门。使用黄金票据前提是你已经控制了整个域的域控制器。其核心原理与服务器中的krbtgt用户相关。从以下可以了解krbtgt原理&#xff1a; 前言 | windows protocolhttps://daiker.gitbook.io/windows-pro…

DNDC模型对所有处理的土壤温度和湿度模拟效果良好,但有时土壤湿度模拟存在偏差

使用 DNDC 模型评估加拿大多样化作物轮作系统对产量和 N2O 排放的影响 原名&#xff1a;Assessing the impacts of diversified crop rotation systems on yields and nitrous oxide emissions in Canada using the DNDC model 译名&#xff1a;使用 DNDC 模型评估加拿大多样…

使用vite创建一个react18项目

一、vite是什么&#xff1f; vite 是一种新型前端构建工具&#xff0c;能够显著提升前端开发体验。它主要由两部分组成&#xff1a; 一个开发服务器&#xff0c;它基于原生 ES 模块提供了丰富的内建功能&#xff0c;如速度快到惊人的模块热更新&#xff08;HMR&#xff09;。 …

站群CMS系统

站群CMS系统是一种用于批量建立和管理网站的内容管理系统&#xff0c;它能够帮助用户快速创建大量的网站&#xff0c;并实现对这些网站的集中管理。以下是三个在使用广泛的站群CMS系统&#xff0c;它们各具特色&#xff0c;可以满足不同用户的需求。 1. Z-BlogPHP Z-BlogPHP是…

PSA制氧设备装置的使用注意事项解析

PSA制氧设备&#xff0c;即变压吸附制氧设备&#xff0c;是一种利用物理吸附原理&#xff0c;通过特定的吸附剂&#xff0c;在压力变化的情况下&#xff0c;从空气中分离出氧气的设备。由于其高效、节能、环保等特点&#xff0c;PSA制氧设备在工业、能源等领域得到了广泛应用。…

QCustomPlot一、QCustomPlot基础及画图显示

1、QCustomPlot下载 QCustomPlot源码demo 根据需要选择需要的文件&#xff1a; 完整版。QCustomPlot.tar.gz 源代码例子帮助文档&#xff1b; 共享库。QCustomPlot-sharedlib.tar.gz 库编译和使用&#xff1b; 源代码。QCustomPlot-source.tar.gz 源代码 里面包含了很多QCusto…

JavaEE 初阶篇-深入了解单例模式(经典单例模式:饿汉模式、懒汉模式)

&#x1f525;博客主页&#xff1a; 【小扳_-CSDN博客】 ❤感谢大家点赞&#x1f44d;收藏⭐评论✍ 文章目录 1.0 单例模式的概述 2.0 单例模式 - 饿汉式单例 2.1 关于饿汉式单例的线程安全问题 3.0 单例模式 - 懒汉式单例 3.1 关于懒汉式单例的线程安全问题 3.1.1 加锁 synchr…

设计模式——行为型——责任链模式Chain Of Responsibility

请求类 public class ApproverRequest {private int type;//请求批准的类型private float price;//请求的金额private int id;//请求的编号 } 审批人抽象类 public abstract class ApproverPerson {protected ApproverPerson next;protected String name;//审批过程public a…

基于SSM+Jsp+Mysql的班级同学录网站

开发语言&#xff1a;Java框架&#xff1a;ssm技术&#xff1a;JSPJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包…

深入解析实时数仓Doris:Rollup上卷表与查询

码到三十五 &#xff1a; 个人主页 心中有诗画&#xff0c;指尖舞代码&#xff0c;目光览世界&#xff0c;步履越千山&#xff0c;人间尽值得 ! 目录 一、基本概念二、Aggregate 和 Unique 模型中的 ROLLUP三、Duplicate 模型中的 ROLLUP四、ROLLUP 调整前缀索引五、ROLLUP使…

【Mars3d绘制完成后设置离地面的实体高度】graphicLayer.startDraw绘制带高度的实体

实现效果&#xff1a; 相关需求场景&#xff1a; 绘制之后可以在success中通过graphic可以拿到所点击的点的位置&#xff0c;然后重新生成一个graphic添加到地图上&#xff0c;重新生成的面在初始化的时候可以指定想要的高度 相关实现代码&#xff1a; // 开始绘制多边形 exp…

如何对抓取的文本进行分词、词频统计、词云可视化和情感分析

目录 一、引言 二、文本分词 三、词频统计 四、词云可视化 五、情感分析 六、总结 一、引言 在大数据时代&#xff0c;文本数据的处理和分析显得尤为重要。对于爬虫抓取的大量文本数据&#xff0c;如何进行高效、准确的处理和分析&#xff0c;是每一个数据分析师和开发…

QML 用文件的方式自定义组件

自定义组件 序言方法首先新建一个QML文件QML文件名称创建完后编写自己的组件 效果注意 序言 说到QML&#xff0c;就肯定离不了自定义一说&#xff0c;毕竟你总不至于用一个qml文件写完全部吧&#xff1f;我来写点基础的东西丰富下QML资料贫乏 方法 首先新建一个QML文件 QML文…

jupyter加目录contrib nbextension 使用

jupyter在工作中使用很方便&#xff0c;可是一旦单个文件的内容多了&#xff0c;即使有markdown文本提醒&#xff0c;上下翻找依旧很费精力。这时&#xff0c;有个目录就显得至关重要了。 1 安装模块 打开anaconda的PowerShell&#xff08;带有Prompt的&#xff09;&#xff0…

nut-ui中的menu 菜单组件的二次封装

这个菜单组件 一般可以直接用到项目里 如果复用性不强的话 直接使用 但是有一个问题 如果很多地方都需要用到这个组件 我们可以把这个组件二次封装一下 <template><div class"cinema-search-filter-component"><nut-menu><template #icon>&…

大学html作业-原神官网静态页面(免费)

大学html作业-原神官网静态页面&#xff08;免费&#xff09; 源码来自githab&#xff0c;有些简单的问题我都修复了。大家可以直接去找原作者的源码&#xff0c;如果githab打不开就从我下载的网盘里下载吧。 效果 在这里插入图片描述 源码

C++11模版元编程

1.概述 模版元编程&#xff08;template metaprogram&#xff09;是C中最复杂也是威力最强大的编程范式&#xff0c;它是一种可以创建和操纵程序的程序。模版元编程完全不同于普通的运行期程序&#xff0c;它很独特&#xff0c;因为模版元程序的执行完全是在编译期&#xff0c;…

找嵌入式软件工作,freertos要掌握到什么程度?

作为一个在嵌入式软件行业工作的6年的工程师告诉你&#xff0c;这根本不是重点&#xff0c;我没有实际学过RTOS&#xff0c;都是赶鸭子上架&#xff0c;只要你会单片机&#xff0c;这种东西太简单了。在开始前我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「fre…