【笔记】通过码云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 --versionpython # 进入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 1sudo 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-devsudo 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.mzph.cn/news/787554.shtml

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

相关文章

做抖店没有产品货源?怎么玩?筛选货源的方法你需要了解清楚!

大家好&#xff0c;我是电商小布。 有很多的新手朋友们在玩抖店的时候&#xff0c;遇到的第一个问题就是自己手里没有产品在。 没有产品货源&#xff0c;也就没办法上架店铺&#xff0c;更别提交易工作了。 那么在这种情况下&#xff0c;该怎么来玩呢&#xff1f; 既然我们…

抖音降权限流后怎么办?可以考虑这样自查!

在抖音运营过程中&#xff0c;可能会遇到账号被降权限流的情况。面对这种情况&#xff0c;我们可以从以下几个方面进行自查&#xff0c;以找出问题所在并采取相应措施。 1 账号安全检查 包括敏感操作自查和违规操作检查。在敏感操作自查方面&#xff0c;需要回顾账号的历史操…

设计模式——行为型——责任链模式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…

Debian/Ubuntu安装ping和netstat命令

sudo apt-get install net-tools#如果需要ping的话&#xff0c;安装如下软件 sudo apt-get install iputils-ping Debian/Ubuntu无netstat命令解决方案 Messay

python基础知识5——时间的处理和转换

python程序能用很多方式处理日期和时间&#xff0c;转换日期格式是一个常见的功能。 1、time模块 1.1、获取当前时间戳(unix时间戳)import time tick time.time() print(tick)1.2、# 获取时间元组import time t time.localtime() # 可传入unix时间戳进行转换 print(t)1.3、…

跨境运营必看:TikTok账号防封指南

多人在使用TikTok的过程中都会遇到一些问题&#xff0c;比如为什么TikTok没有浏览量&#xff1f;事实上&#xff0c;这很可能是因为你的账号已被禁止。但为什么它会被封呢&#xff1f;你怎样才能解决它&#xff1f; 一、TikTok账号为什么被封&#xff1f; 1、什么是 TikTok 影…

【隐私计算实训营008——SCQL】

1.SCQL使用/集成最佳实践 目前SCQL只开放API供用户使用/集成 使用SCDBClient上手体验可以基于SCQL API开发封装白屏产品&#xff0c;或集成到业务链路中 1.1 部署系统 环境配置&#xff1a; 机器配置&#xff1a;CPU/MEM最低8C16G机构之间的网络互通 镜像&#xff1a;secret…

记一个Unity的异常问题

今天同事给我反馈了一个Unity使用ThreadStatic的问题&#xff0c;问题如下&#xff1a; [ThreadStatic]private static Dictionary<int, Mesh> dic;IEnumerator Start(){dic new Dictionary<int, Mesh>();dic.Add(0, new Mesh());yield return Resources.UnloadUn…

Flutter应用在苹果商店上架前的准备工作与注意事项

引言 &#x1f680; Flutter作为一种跨平台的移动应用程序开发框架&#xff0c;为开发者提供了便利&#xff0c;使他们能够通过单一的代码库构建出高性能、高保真度的应用程序&#xff0c;同时支持Android和iOS两个平台。然而&#xff0c;完成Flutter应用程序的开发只是第一步…

构建开源可观测平台

企业始终面临着确保 IT 基础设施和应用程序全年可用的压力。现代架构&#xff08;容器、混合云、SOA、微服务等&#xff09;的复杂性不断增长&#xff0c;产生大量难以管理的日志。我们需要智能应用程序性能管理 (APM) 和可观察性工具来实现卓越生产并满足可用性和正常运行时间…

算法错题本

这里写目录标题 错题本注意数据的耦合性对于无解情况的处理思路一组数据以0为结束标记&#xff0c;如何输入到数组中&#xff0c;并计数多个数据进行比较链表删除重复元素的启发循环体里谨慎写类型定义并初始化&#xff08;一般写上就是错&#xff09;队列中读取队尾元素数组当…

实现3D模型无变形的减面渲染方法---模大狮模型网

在进行3D模型渲染时&#xff0c;减面(或降面)是一种常用的优化技术&#xff0c;用于降低模型的复杂度&#xff0c;提高渲染效率。然而&#xff0c;在减面过程中&#xff0c;若不小心可能会引起模型的形变或细节丢失。模大狮将介绍一些方法和技巧&#xff0c;帮助您在减面渲染时…

在 Kubernetes 中使用 Traefik 作为入口点并将流量路由到您的应用程序服务

在 Kubernetes 中使用 Traefik 作为入口点并将流量路由到您的应用程序服务 您可以按照以下步骤操作&#xff1a; 1. 确保您已经在 Kubernetes 集群中部署了 Traefik。 在Kubernetes集群中部署Traefik&#xff0c;您可以按照以下步骤操作&#xff1a; 1. 创建一个Traefik C…

安卓主板MT8390(Genio 700)_MTK联发科Linux开发板方案

MediaTek Genio 700 &#xff08;MT8390&#xff09;是一款高性能的边缘 AI 物联网平台&#xff0c;专为智能家居、互动零售、工业与商业应用而设计。提供快速响应的边缘计算能力、先进的多媒体功能、广泛的传感器和连接方式&#xff0c;且支持多任务操作系统。 MT8390安卓核心…

IDA Pro *(_QWORD *)和*(_BYTE *)表达式解释

在IDA Pro&#xff08;一个交互式的反汇编器和调试器&#xff09;或其他类似的低级代码分析工具中&#xff0c;*(_QWORD *) 这种表达式通常用于类型转换和解引用。 这里的 _QWORD 通常表示一个64位的无符号整数类型&#xff08;在64位系统上&#xff09;。* 是解引用操作符&am…

在Linux或类Unix系统中获取帮助的命令

man <name>&#xff1a;该命令显示指定命令或主题的手册页面。例如&#xff0c;man ls 显示 ls 命令的手册页面。man <section> <name>&#xff1a;此命令允许你为手册页面指定一个部分编号。例如&#xff0c;man 2 open 显示位于手册第 2 部分的 open 系统调…

如何同时使用多个Gmail账号而不被关联?

您的业务活动需要多个 Gmail 帐户吗&#xff1f;出海畅游&#xff0c;Gmail账号是少不了的工具之一&#xff0c;可以关联到Twitter、Facebook、Youtube、Chatgpt等等平台&#xff0c;可以说是海外网络的“万能锁”。但是大家都知道&#xff0c;以上这些平台注册多账号如果产生关…

Linux:入门篇

文章目录 前言1. Linuxd的安装环境2.Linux的简单介绍2.1 新建目录2.2 新建文件 3.指令到底是什么&#xff1f;4.shell命令以及运行原理5.总结 前言 很多人对于Linux的学习总是感觉无法下手&#xff0c;不知道从何开始学习&#xff0c;相信这篇文章将会为你提供一个清晰的思路。…

如何在Python中实现多线程和多进程?

如何在Python中实现多线程和多进程&#xff1f; 在Python中&#xff0c;多线程和多进程是实现并发编程的两种主要方式。它们各自有其特点和适用场景。下面将分别介绍如何在Python中实现多线程和多进程&#xff0c;并探讨它们的优缺点。 一、多线程 Python的标准库提供了thre…

【SpringBoot整合系列】SpirngBoot整合EasyExcel

目录 背景需求发展 EasyExcel官网介绍优势常用注解 SpringBoot整合EaxyExcel1.引入依赖2.实体类定义实体类代码示例注解解释 3.自定义转换器转换器代码示例涉及的枚举类型 4.Excel工具类5.简单导出接口SQL 6.简单导入接口SQL 7.复杂的导出&#xff08;合并行、合并列&#xff0…