【OH】openHarmony开发环境搭建(基于windows子系统WSL)

前言

本文主要介绍基于windows子系统WSL搭建openHarmony开发环境。
WSL与Vmware虚拟机的区别,可以查看WSL与虚拟机的区别
更详细的安装配置过程可参考微软官网:
​安装 WSL

前提

以下基于windows 111专业版进行配置,windows 10应该也是可以按找该步骤配置。
windows规格
以防有权限问题导致安装失败,以下使用的PowerShell均以管理员权限运行。

WSL搭建步骤

安装WSL 2

下载WSL

Microsoft Store中搜索Ubuntu
安装WSL
点击免费下载,获取Ubuntu 20.04.6 LTS软件,完成安装。

打开相关配置

方法一

控制面板->程序->启用或关闭windows功能
勾选适用于Linux的windows子系统和虚拟机平台(WSL2需要)选项。
选项配置

方法二:

直接在powershell中输入如下两条指令开启

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启生效

按要求重启使设置生效
重启生效

安装WSL

在开始菜单中找到刚刚安装的ubuntu20.04,打开后会自动进行安装
安装WSL

创建用户

安装完成后,会提示创建用户
创建用户按照提示输入你的用户名和密码即可。
用户密码
如果这里直接关闭,不创建用户,以后打开WSL都会以root用户登录运行。

升级WSL 2

在powerShell中输入以下命令

wsl -l --all -v

wsl查询
如果version显示“1”,则说明WSL 1安装成功,需要升级为WSL 2,执行以下命令

wsl --set-version Ubuntu-20.04 2

升级WSL 2
提示需要更新内核组件,直接下载linux内核包进行安装。
linux内核包
安装完成后,重启电脑,再次执行上面的命令。
安装linux内核包
查询版本确认升级成功
确认升级wsl 2
设置WSL 2成为你的默认体系结构

wsl --set-default-version 2

至此WSL2安装完成。

WSL 2安装后续问题

C盘空间不足

解决办法:将WSL2移动到别的空间足够的磁盘。
注意:平时对ubuntu20.04做比较激进的操作时,可以采用这个方法将WSL2备份,万一系统崩溃,还能还原回来。

关闭ubuntu

如果Ubuntu正常使用,则需要先关闭Ubuntu,命令如下

wsl --shutdown
导出Ubuntu

导出Ubuntu,命令如下

wsl --export Ubuntu-20.04 E:\wsl-ubuntu20.04.tar

导出完成后,在相应磁盘下即可看到压缩包:
导出ubuntu

注销当前分发版

命令如下

wsl --unregister Ubuntu-20.04
导入并安装

重新导入并安装WSL2到指定目录,命令如下

wsl --import Ubuntu-20.04 E:\wsl2-ubuntu20.04 E:\wsl-ubuntu20.04.tar --version 2

导入完成后,在相应磁盘路径下即可看到文件夹
导入ubuntu

设置默认登陆用户

设置WSL2默认登录用户

ubuntu2004 config --default-user xxx
删除压缩包

删除之前导出的压缩包,如果空间足够,也可以不删除。

WSL2内存占用率高,影响Windows使用

解决办法:添加wsl2配置文件,限制最大使用内存。
在 C:\Users%UserProfile% 目录下,创建.wsl2config隐藏文件(注意前面有个点),复制粘贴如下内容
(8GB表示限制WSL2最多使用8G的内存,可以根据电脑配置合理分配)。

[wsl2]
memory=8GB
swap=0
localhostForwarding=true

WSL 2配置

与windows文件共享问题

解决办法:通过资源管理器直接访问。
wsl2访问windows:直接在ubuntu中访问/mnt/下磁盘挂载目录即可。
wsl2访问windows
windows访问wsl2: 直接在资源管理器中输入\wsl$ 即可。
windows访问wsl2
可以将该目录固定到快速访问,以后直接从快速访问栏进入即可。

wsl删除的空间不回收

由于WSL2使用虚拟硬盘(VHD)存储linux下的文件,随着Linux下文件越来越多,占用空间也会不断增长。
但是,在Linux中减少文件占用,WSL却没有相应的自动减少硬盘空间的占用(可能使用VM虚拟机一样存在这个问题)。

解决方法:在删除掉linux下的文件后,可以手动释放这部分空间。
下图是在删除文件前的磁盘大小,并且在删除20多个G大小的文件后,还是未发生变化。
wsl删除的空间不回收

关闭wsl
wsl --shutdown
diskpart

执行diskpart,会弹出一个cmd窗口。
diskpart
在diskpart命令窗口下依次输入如下内容(vhdx文件需要换成自己的路径)

select vdisk file="D:\WSL\Ubuntu2004\ext4.vhdx"
attach vdisk readonly
compact vdisk
detach vdisk
exit

compact vdisk
退出后,再次查看虚拟文件大小,发现空间已经恢复回来了。
WSL回收

连接USB的问题

连接 USB 设备

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

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

相关文章

机器学习: LightGBM模型(优化版)——高效且强大的树形模型

LightGBM(Light Gradient Boosting Machine)是一种基于梯度提升决策树(GBDT)的框架,由微软提出。它具有高效的训练速度、低内存占用、支持并行和GPU加速等特点,非常适合大规模数据的训练任务,尤…

游戏引擎学习第八天

视频参考: https://www.bilibili.com/video/BV1ouUPYAErK/ 理解下面的代码 关于虚函数 代码分解 结构体 foo 的定义: struct foo {int32 X;int64 Y;virtual void Bar(int c); };foo 结构体有两个成员变量:X(int32 类型)和 Y&…

Xcode 16 使用 pod 命令报错解决方案

原文请点击这个跳转 一、问题现象: 有人会遇到 Xcode 升级到 16 后,新建应用然后使用 pod init 命令会报错如下: Stack Ruby : ruby 3.3.5 (2024-09-03 revision ef084cc8f4) [x86_64-darwin23]RubyGems : 3.5.22Host : macOS 15.0 (24A335…

概率论之正态分布密度函数与matlab

文章目录 0.浅谈我的想法1.正态分布引入1.1公式和对应概率1.2模拟生成数据1.3图像绘制1.4图像的调整1.5概率密度函数1.6两个方式的对比分析1.7分布函数1.8分位数效果展示 0.浅谈我的想法 众所周知,在这个数学建模的这个过程之中会遇到很多的这个概率论的相关的问题…

【maven踩坑】一个坑 junit报错 但真正导致这个的不是junit的原因

目录 事件起因环境和工具操作过程解决办法结束语 事件起因 报错一: Internal Error occurred. org.junit.platform.commons.JUnitException: TestEngine with ID junit-vintage failed to discover tests报错二: Internal Error occurred. org.junit.pl…

【算法】——二分查找合集

阿华代码,不是逆风,就是我疯 你们的点赞收藏是我前进最大的动力!! 希望本文内容能够帮助到你!! 目录 零:二分查找工具 1:最基础模版 2:mid落点问题 一:最…

caozha-CEPCS(新冠肺炎疫情防控系统)

caozha-CEPCS,是一个基于PHP开发的新冠肺炎疫情防控系统,CEPCS(全称:COVID-19 Epidemic Prevention and Control System),可以应用于单位、企业、学校、工业园区、村落等等。小小系统,希望能为大…

AI技术赋能电商行业:创新应用与未来展望

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《热点时事》 期待您的关注 引言 随着科技的飞速发展,人工智能(AI)技术正逐步渗透到各行各业&a…

若依项目-结构解读

项目结构 admin模块 common模块 framework模块 service模块 配置 依赖关系 前端接口 src 表结构

音视频入门基础:MPEG2-TS专题(3)——TS Header简介

注:本文有部分内容引用了维基百科:https://zh.wikipedia.org/wiki/MPEG2-TS 一、引言 本文对MPEG2-TS格式的TS Header进行简介。 进行简介之前,请各位先下载MPEG2-TS的官方文档。ITU-T和ISO/IEC都分别提供MPEG2-TS的官方文档。但是ITU提供的…

RN开发遇到的坑

1 、 RN 启动崩溃 https://blog.csdn.net/qq_31915745/article/details/108125671 2、修改报红⻚ https://blog.csdn.net/weixin_43969056/article/details/104757926 3 、编译不过去提示 glog-0.3.5 有问题, 找到 / 项⽬ /node_modules/react-native/scripts/ io…

折叠手机失败了,有手机品牌宣布退出,苹果成为赢家

日前一家手机企业宣布停止研发大折叠手机,这对于国产手机来说显然是一大打击,他们都希望以折叠手机抢占高端手机市场,然而残酷的市场现实却是消费者始终难以接受折叠手机,导致折叠手机的销量规模始终难以扩大。 折叠手机最早由三星…

解决Jenkins使用 Git 参数插件拉取 commit 列表缓慢问题

Jenkins使用 Git 参数插件拉取 commit 列表缓慢问题 项目问题问题描述解决方案具体实现 项目问题 在 Jenkins 中使用 Git 参数插件 进行参数化构建,具有多方面的重要性和好处。这不仅提高了构建的灵活性和透明度,还能大大提升开发和运维效率。以下是使用…

Python数据分析NumPy和pandas(二十七、数据可视化 matplotlib API 入门)

数据可视化或者数据绘图是数据分析中最重要的任务之一,是数据探索过程的一部分,数据可视化可以帮助我们识别异常值、识别出需要的数据转换以及为模型生成提供思考依据。对于Web开发人员,构建基于Web的数据可视化显示也是一种重要的方式。Pyth…

sqli—labs靶场 5-8关 (每日4关练习)持续更新!!!

Less-5 上来先进行查看是否有注入点,判断闭合方式,查询数据列数,用union联合注入查看回显位,发现到这一步的时候,和前四道题不太一样了,竟然没有回显位??? 我们看一下源…

从建立TRUST到实现FAIR:可持续海洋经济的数据管理

1. 引言 随着我们对信息管理方式的信任,我们的社会对数字化数据的以来呈指数级增长。为了跟上大数据的需求,通过不断的努力和持续实践,对“good”数据管理方式的共识也在不断发展和演变。 加拿大正在建设国家基础设施和服务以及研究数据管理…

基于GPS/GIS数据融合与预处理技术的工厂导航系统(三)

在智能制造与智慧物流的背景下,厂区导航系统的高效性与准确性至关重要。然而,GPS信号易受环境干扰,GIS数据则可能因来源多样而存在误差。本文旨在通过详细剖析GPS数据的获取、解析与误差校正,GIS数据的导入、图层管理与空间数据清…

Django 外键引用另一个表中的多个字段

在 Django 中,外键(ForeignKey)通常只引用另一张表的一个字段,比如一个主键或一个唯一标识字段。然而,如果我们需要让一个外键引用另一张表中的多个字段,通常有以下几种方法来实现这种关系。 1、问题背景 …

Python爬虫项目 | 一、网易云音乐热歌榜歌曲

文章目录 1.文章概要1.1 实现方法1.2 实现代码1.3 最终效果 2.具体讲解2.1 使用的Python库2.2 代码说明2.2.1 创建目录保存文件2.2.2 爬取网易云音乐热歌榜单歌曲 2.3 过程展示 3 总结 1.文章概要 学习Python爬虫知识,实现简单的一个小案例,网易云音乐热…

ffmpeg内存模型

文章目录 展示图拷贝packet 重要!!!avpacket.c相关函数av_packet_alloc 简单的赋值 里面的还有没有进行初始化的指针av_packet_ref 展示图 拷贝packet 拷贝packet有两种情况 1: 两个packet的buf引用的是同一个数据缓冲空间&#…