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

news2024/11/29 0:35:12

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 中导入源码。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于GA遗传优化的离散交通网络双层规划模型设计matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 5.完整程序 1.程序功能描述 基于GA遗传优化的离散交通网络双层规划模型设计.优化输出路段1和路段2的收费情况收敛过程。 2.测试软件版本以及运行结果展示 MATLAB2022a版本运行 3.核心程序…

企微获客助手到底有哪些价值?

获客助手作为企业微信官方提供的获客工具&#xff0c;在私域布局中确实展现了其强大的引流效率和便利性。这一工具通过简化传统引流过程中的复杂步骤&#xff0c;使得企业能够更高效地吸引和转化潜在客户。此外&#xff0c;获客助手还能实现不同渠道的无缝链接&#xff0c;进一…

OSPF之单区域配置

文章目录 单区域配置项目背景项目分析拓扑图配置思路基础配置命令查看路由器接口IP地址信息OSPF配置 测试PC1与PC2互通查看OSPF邻居表修改OSPF路由器的router-id完美的OSPF配置命令写法常用查询命令 单区域配置 项目背景 企业内部存在多个部门&#xff0c;分别属于不同的网段…

idea-创建java8的springboot项目

现在使用IDEA创建 Spring Boot 项目&#xff0c;jdk 版本最低要求为 17。Spring Boot 官方在全力维护 3.x 版本&#xff0c;而 Spring Boot 3.x 对 jdk 版本的最低要求为17。 如果需要继续使用 jdk8&#xff0c;则需要修改 Server URL &#xff0c;改成&#xff1a;https://st…

线程的安全问题

目录 导言&#xff1a; 正文&#xff1a; 1.共享资源&#xff1a; 2.非原子操作&#xff1a; 3.执行顺序不确定&#xff1a; 4.可见性&#xff1a; 5.死锁和饥饿&#xff1a; 6.指令重排序&#xff1a; 总结&#xff1a; 导言&#xff1a; 线程安全是并发编程中的一个…

Vue——案例01(查询用户)

一、案例实现页面 二、案例实现效果 1. 查询效果 2. 年龄升序 3. 年龄降序 4. 原顺序 三、案例实现思路 1. 定义界面所需标签样式 <div id"app"><h2>查询用户:</h2><input type"text" placeholder"请输入名字"/><b…

Unity类银河恶魔城学习记录11-8 p110 Enemy modifiers源代码

Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释&#xff0c;可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码 【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili EnemyStat.cs using System.Collections; using System.Collections.Gener…

docker中配置交互式的JupyterLab环境的问题

【报错1】 Could not determine jupyter lab build status without nodejs 【解决措施】安装nodejs(利用conda进行安装/从官网下载进行安装&#xff09; 1、conda安装 conda install -c anaconda nodejs 安装后出现其他报错&#xff1a;Please install nodejs 5 and npm bef…

Vite为什么比Webpack快得多?

Vite为什么比Webpack快得多&#xff1f; 在前端开发中&#xff0c;构建工具扮演着至关重要的角色&#xff0c;而Vite和Webpack无疑是两个备受关注的工具。然而&#xff0c;众多开发者纷纷赞誉Vite的速度之快&#xff0c;本文将深入探讨Vite相较于Webpack为何更快的原因&#xf…

备战蓝桥杯---树学初步1

LCA&#xff08;最近公共祖先&#xff09; 定义&#xff1a;有根树的两个节点u,v&#xff0c;他们的LCA是一个节点x,其中x是他们的公共祖先并且X的深度尽可能大。 法1---Tarjan算法&#xff1a; 核心&#xff1a;DFS并查集 在并查集中建立仅有u的集合&#xff0c;设该集合祖…

每日一练 找无重复字符的最长子串

我们来看下这个题目&#xff0c;我们要统计的是不重复的子串&#xff0c;我们可以使用“滑动窗口法”&#xff0c;其实我们很容易就能想到思路。 我们的左窗代表我们目前遍历的开始&#xff0c;即我们遍历的子串的开头&#xff0c;右窗从左窗开始进行遍历&#xff0c;每次遍历…

安装部署MariaDB数据库管理系统

目录 一、初始化MariaDB服务 1、安装、启动数据库服务程序、将服务加入开机启动项中。 2、为保证数据库安全性和正常运转&#xff0c;需要对数据库程序进行初始化操作。 3、配置防火墙&#xff0c;放行对数据库服务程序的访问请求&#xff0c;允许管理员root能远程访问数据…

AIGC-Stable Diffusion发展及原理总结

目录 一. AIGC介绍 1. 介绍 2. AIGC商业化方向 3. AIGC是技术集合 4. AIGC发展三要素 4.1 数据 4.2 算力 4.3 算法 4.3.1 多模态模型CLIP 4.3.2 图像生成模型 二. Stable Diffusion 稳定扩散模型 1. 介绍 1.1 文生图功能&#xff08;Txt2Img) 1.2 图生图功能&…

Java复习第十二天学习笔记(JDBC),附有道云笔记链接

【有道云笔记】十二 3.28 JDBC https://note.youdao.com/s/HsgmqRMw 一、JDBC简介 面向接口编程 在JDBC里面Java这个公司只是提供了一套接口Connection、Statement、ResultSet&#xff0c;每个数据库厂商实现了这套接口&#xff0c;例如MySql公司实现了&#xff1a;MySql驱动…

python实现两个Excel表格数据对比、补充、交叉验证

业务背景 业务中需要用到类似企查查一类的数据平台进行数据导出&#xff0c;但企查查数据不一定精准&#xff0c;所以想采用另一个官方数据平台进行数据对比核验&#xff0c;企查查数据缺少的则补充&#xff0c;数据一致的保留企查查数据&#xff0c;不一致的进行颜色标注。 …

Jmeter 配置说明之线程组

一、线程组介绍&#xff1a; 线程组元件是任何一个测试计划的开始点。在一个测试计划中的所有元件都必须在某个线程组下。所有的任务都是基于线程组&#xff1a; 通俗理解&#xff1a; 线程组&#xff1a;就是一个线程组&#xff0c;里面有若干个请求&#xff1b; 线程&am…

ZNC3罗德与施瓦茨ZNC3网络分析仪

181/2461/8938产品概述&#xff1a; 罗德与施瓦茨 ZNC3 网络分析仪的工作频率范围为 9 kHz 至 3 GHz&#xff0c;面向移动无线电和电子产品行业的应用。它具有双向测试装置&#xff0c;用于测量有源和无源 DUT 的所有四个 S 参数。此外&#xff0c;它还提供适合开发和生产中各…

SOC子模块---存储器

存储器子系统简介 多层存储结构概念 该结构的核心是解决容量,速度,价格之间的矛盾,建立其的一种多层次存储架构;在金字塔越顶部其容量越小,价格越昂贵,但是其速度越快; Cache的出现主要解决了cpu 与主存之间速度的差异; 主存和辅存的层次结构解决了计算机对大容量,…

生态鱼缸智能养殖,系统架构与框图

功能&#xff1a;自动投食&#xff08;推拉式电磁铁&#xff09;&#xff0c;温度显示的改进&#xff08;传感器已经有了&#xff09;&#xff0c;控制灯光&#xff08;白天亮晚上灭&#xff09;&#xff0c;自动补养/水循环&#xff08;水氧监测太贵了&#xff0c;根据水温&am…

学习笔记】java项目—苍穹外卖day05

文章目录 苍穹外卖-day05课程内容1. Redis入门1.1 Redis简介1.2 Redis下载与安装1.2.1 Redis下载1.2.2 Redis安装 1.3 Redis服务启动与停止1.3.1 服务启动命令1.3.2 客户端连接命令1.3.3 修改Redis配置文件1.3.4 Redis客户端图形工具 2. Redis数据类型2.1 五种常用数据类型介绍…