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

【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 设备

相关文章:

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

前言 本文主要介绍基于windows子系统WSL搭建openHarmony开发环境。 WSL与Vmware虚拟机的区别,可以查看WSL与虚拟机的区别 更详细的安装配置过程可参考微软官网: ​安装 WSL 前提 以下基于windows 111专业版进行配置,windows 10应该也是可以…...

Visual Studio Code 端口转发功能详解

Visual Studio Code 端口转发功能详解 引言 Visual Studio Code(简称 VS Code)是一个功能强大的源代码编辑器,它支持多种编程语言的语法高亮、智能代码补全、自定义快捷键、代码重构等特性。除了这些基本功能外,VS Code 还提供了…...

Android Framework AMS(14)ContentProvider分析-1(CP组件应用及开机启动注册流程解读)

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:本章节主要解读ContentProvider组件的基本知识。关注思维导图中左上侧部分即可。 有了前面activity组件分析、service组件分析、广播组件分析的基…...

Three.js PBR材质

本文将详细介绍Three.js中的PBR(Physically Based Rendering)材质,包括PBR的基本概念、适用场景、PBR材质的构建以及一些高级应用技巧。 1. PBR(Physically Based Rendering)基本概念 PBR,即Physically B…...

智谱AI清影升级:引领AI视频进入音效新时代

前几天智谱推出了新清影,该版本支持4k、60帧超高清画质、任意尺寸,并且自带音效的10秒视频,让ai生视频告别了"哑巴时代"。 智谱AI视频腾空出世,可灵遭遇强劲挑战!究竟谁是行业翘楚?(附测评案例)之前智谱出世那时体验了一…...

嵌入式硬件电子电路设计(五)MOS管详解(NMOS、PMOS、三极管跟mos管的区别)

引言:在我们的日常使用中,MOS就是个纯粹的电子开关,虽然MOS管也有放大作用,但是几乎用不到,只用它的开关作用,一般的电机驱动,开关电源,逆变器等大功率设备,全部使用MOS管…...

Centos 9 安装 PostgreSQL 16 并支持远程访问

仅列出核心操作,可以解决使用过程中遇到的访问问题。 1 安装 使用dnf源安装 sudo dnf module -y install postgresql:16 2 配置文件夹权限 使用root权限操作 sudo chown postgres:postgres /var/lib/pgsql/datasudo chmod -R 0750 /var/lib/pgsql/data 3 初…...

Dubbo源码解析(三)

一、Dubbo整合Spring启动流程 Dubbo的使用可以不依赖Spring,但是生产环境中Dubbo都是整合到Spring中一起使用,所以本章就解析Dubbo整合Spring的启动流程 一、传统的xml解析方式 一、Dubbo配置解析流程 在Java 中,一切皆对象。在JDK 中使用…...

HarmonyOS Next星河版笔记--界面开发(5)

1.字符串 1.1.字符串拼接 作用:把两个或多个字符串,拼成一个字符串。(通常是用来拼接字符串和变量) hello world > helloworld 加好作用:拼接 let name:string 小明 console.log(简介信息,名字是 name) …...

Spring Boot3 实战案例合集上线了

Spring Boot3实战案例合集...

在Ubuntu 24.04 LTS上安装飞桨PaddleX

前面我们介绍了《在Windows用远程桌面访问Ubuntu 24.04.1 LTS》本文接着介绍安装飞桨PaddleX。 PaddleX 3.0 是基于飞桨框架构建的一站式全流程开发工具,它集成了众多开箱即用的预训练模型,可以实现模型从训练到推理的全流程开发,支持国内外多…...

Homebrew 命令大全

Homebrew 是 macOS 和 Linux 系统上的一个流行的包管理器,它可以帮助用户轻松地安装、更新和管理软件包。以下是一些常用的 Homebrew 命令: 安装 Homebrew 如果你还没有安装 Homebrew,可以使用以下命令在 macOS 上进行安装: /b…...

Docker+Django项目部署-从Linux+Windows实战

一、概述 1. 什么是Docker Docker 是一个开源的应用容器引擎,支持在win、mac、Linux系统上进行安装。可以帮助我们在一台电脑上创建出多个隔离的环境,比传统的虚拟机极大的节省资源 。 为什么要创建隔离的环境? 假设你先在有一个centos7.…...

前端 JS 实用操作总结

目录 1、重构解构 1、数组解构 2、对象解构 3、...展开 2、箭头函数 1、简写 2、this指向 3、没有arguments 4、普通函数this的指向 3、数组实用方法 1、map和filter 2、find 3、reduce 1、重构解构 1、数组解构 const arr ["唐僧", "孙悟空&quo…...

11.15 机器学习-集成学习方法-随机森林

# 机器学习中有一种大类叫**集成学习**(Ensemble Learning),集成学习的基本思想就是将多个分类器组合,从而实现一个预测效果更好的集成分类器。集成算法可以说从一方面验证了中国的一句老话: # 三个臭皮匠&#xff0c…...

【SQL】E-R模型(实体-联系模型)

目录 一、介绍 1、实体集 定义和性质 属性 E-R图表示 2. 联系集 定义和性质 属性 E-R图表示 一、介绍 实体-联系数据模型(E-R数据模型)被开发来方便数据库的设计,它是通过允许定义代表数据库全局逻辑结构的企业模式&#xf…...

C/C++静态库引用过程中出现符号未定义的处理方式

问题背景: 在接入新库(静态库)时遇到了符号未定义问题,并发现改变静态库的链接顺序可以解决问题。 问题根源: 静态库是由 .o 文件拼接而成的,链接静态库时,链接器以 .o 文件为单位进行处理。链接…...

『VUE』27. 透传属性与inheritAttrs(详细图文注释)

目录 什么是透传属性(Forwarding Attributes)使用条件唯一根节点禁用透传属性继承总结 欢迎关注 『VUE』 专栏,持续更新中 欢迎关注 『VUE』 专栏,持续更新中 什么是透传属性(Forwarding Attributes) 在 V…...

借助Excel实现Word表格快速排序

实例需求:Word中的表格如下图所示,为了强化记忆,希望能够将表格内容随机排序,表格第一列仍然按照顺序编号,即编号不跟随表格行内容调整。 乱序之后的效果如下图所示(每次运行代码的结果都不一定相同&#x…...

数据结构 ——— 层序遍历链式二叉树

目录 链式二叉树示意图​编辑 何为层序遍历 手搓一个链式二叉树 实现层序遍历链式二叉树 链式二叉树示意图 何为层序遍历 和前中后序遍历不同,前中后序遍历链式二叉树需要利用递归才能遍历 而层序遍历是非递归的形式,如上图:层序遍历的…...

SDMatte与LSTM时序模型结合:处理视频连续帧的稳定抠图

SDMatte与LSTM时序模型结合:处理视频连续帧的稳定抠图 1. 引言:视频抠图的挑战与机遇 视频抠图技术一直是影视后期和直播领域的核心需求。传统方法在处理动态场景时常常面临边缘闪烁、细节丢失和时间不一致等问题。想象一下,当你在视频会议…...

如何快速配置AdGuard广告拦截扩展:5分钟完成跨浏览器隐私保护的完整教程

如何快速配置AdGuard广告拦截扩展:5分钟完成跨浏览器隐私保护的完整教程 【免费下载链接】AdguardBrowserExtension AdGuard browser extension 项目地址: https://gitcode.com/gh_mirrors/ad/AdguardBrowserExtension AdGuard浏览器扩展是一款开源、高效的广…...

BilibiliCommentScraper:革新性全量数据采集的技术突破方案

BilibiliCommentScraper:革新性全量数据采集的技术突破方案 【免费下载链接】BilibiliCommentScraper 项目地址: https://gitcode.com/gh_mirrors/bi/BilibiliCommentScraper 在当今数据驱动决策的时代,高效采集方案与完整数据获取已成为内容分析…...

Python 3.14 JIT动态优化实战(企业级成本控制白皮书)

第一章:Python 3.14 JIT编译器演进与企业级定位Python 3.14 引入了首个官方集成的、生产就绪的 JIT(Just-In-Time)编译器——PyJIT,标志着 CPython 从纯解释执行向混合执行模型的战略跃迁。该 JIT 并非替代现有字节码解释器&#…...

简单几步,让AI帮你画瑜伽女孩:雯雯的后宫-造相Z-Image-瑜伽女孩模型使用教程

简单几步,让AI帮你画瑜伽女孩:雯雯的后宫-造相Z-Image-瑜伽女孩模型使用教程 1. 模型介绍:你的专属AI瑜伽画师 想象一下,你只需要用文字描述,就能让AI为你创作出专业级的瑜伽女孩图片。这就是"雯雯的后宫-造相Z…...

大麦抢票神器:3分钟快速上手,轻松搞定热门演出门票

大麦抢票神器:3分钟快速上手,轻松搞定热门演出门票 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 你是一个文章写手&#x…...

Ubuntu20.04下HPC_SDK加速库安装避坑指南(附OpenACC测试代码)

Ubuntu 20.04下HPC_SDK加速库深度实战指南:从安装到OpenACC性能调优 在当今高性能计算领域,GPU加速已成为提升计算效率的关键技术。NVIDIA HPC SDK作为一套全面的开发工具包,为开发者提供了从编译器到性能分析的全套解决方案。本文将带您深入…...

极速体验OpenClaw:星图平台nanobot镜像10分钟入门

极速体验OpenClaw:星图平台nanobot镜像10分钟入门 1. 为什么选择云端沙盒体验OpenClaw 作为一个长期关注AI自动化工具的技术爱好者,我一直在寻找一个既安全又高效的本地AI助手解决方案。OpenClaw的出现让我眼前一亮,但本地部署的复杂环境配…...

解锁Joplin无缝笔记体验:3大场景实现全平台知识管理自由

解锁Joplin无缝笔记体验:3大场景实现全平台知识管理自由 【免费下载链接】joplin Joplin 是一款安全笔记记录与待办事项应用,具备跨平台同步功能,支持 Windows、macOS、Linux、Android 和 iOS 平台。 项目地址: https://gitcode.com/GitHub…...

Qwen-Image-2512-SDNQ Web服务实战:WebUI下载功能与浏览器兼容性全平台测试

Qwen-Image-2512-SDNQ Web服务实战:WebUI下载功能与浏览器兼容性全平台测试 1. 项目概述与核心价值 今天我要和大家分享一个特别实用的AI图片生成项目——基于Qwen-Image-2512-SDNQ-uint4-svd-r32模型的Web服务。这个项目最大的亮点在于,它把复杂的AI图…...