工程师 - Windows下使用WSL本地安装Linux

news2024/9/21 18:05:00
Setting Up to Use Windows Subsystem For Linux (WSLv2)
1,Win+R,运行ver命令:
我的是Win11系统,但版本还是10.xx的。要求 Windows 10 builds > 18917,才能使用WSLv2。
如果需要版本升级,请参照: Install WSL | Microsoft Learn
2,准备工作。
Win+R, 输入optionalfeatures.exe。或者搜索“启用或关闭Windows功能”。
勾选“Windows Subsystem for Linux”。然后需要重启电脑。
同样的操作,可以在PowerShell里完成(Win+R,输入powershell 或开始菜单栏里搜索powershell):
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Win+R,输入services.msc,打开Windows服务设置对话框。
找到LxssManager服务,确定已经启动,或者选择重启(restart)。
打开PowerShell,更新wsl。
wsl --update
3,安装
Win+S, 或Win+Q,输入Store,打 开微软商店Microsoft Store,搜索Linux,选择你想安装的的版本。
我这里选择Ubuntu 22.04 LTS版本。点击Get开始下载和安装。
除此之外,还可以在使用管理员权限在powershell中安装默认版本Ubuntu:
wsl --install
下面命令查询所有可用的线上版本:
wsl --list --online
以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。
NAME                            FRIENDLY NAME
Ubuntu                          Ubuntu
Debian                          Debian GNU/Linux
kali-linux                      Kali Linux Rolling
Ubuntu-18.04                    Ubuntu 18.04 LTS
Ubuntu-20.04                    Ubuntu 20.04 LTS
Ubuntu-22.04                    Ubuntu 22.04 LTS
Ubuntu-24.04                    Ubuntu 24.04 LTS
OracleLinux_7_9                 Oracle Linux 7.9
OracleLinux_8_7                 Oracle Linux 8.7
OracleLinux_9_1                 Oracle Linux 9.1
openSUSE-Leap-15.6              openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5    SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6    SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed             openSUSE Tumbleweed
比如安装Ubuntu-24.04:
wsl --install Ubuntu-24.04
使用下面命令查看已安装的版本:
wsl -l -v
4,打开和关闭
如果是在商店里安装的,直接点击Open打开, 或在商店里的Library里找到Ubuntu并打开。
无论安装方式,也可以在搜索栏中输入Ubuntu找到应用并打开。
在powershell中也可以打开,直接输入Linux版本名称即可,全小写字幕,特殊符号都去掉:
ubuntu2404.exe
5,设置用户名和升级软件包
打开Ubuntu后,进入Linux终端,会提示输入用户名和密码,这是Linux的用户密码,与Windows系统无关。
然后启动Ubuntu,建议先把软件包升级一下:
sudo apt update
sudo apt full-upgrade -y
6,卸载和清除
若想卸载的话,在添加或删除程序里卸载相应版本Linux即可。
如果已经删除了,在“wsl -l -v” 命令时还显示其版本,可以在powershell中使用下面命令清除:
wsl --unregister <distribution name>
上面命令会注销并卸载 WSL 发行版。
7,具体使用
经常优化 WSLv2 存储: 由于 WSLv2 处理存储空间的方式,Linux 发行版所使用的存储空间不会立即反映出来,而且 bitbake 会大量使用存储空间,因此在多次构建后,您可能会意识不到自己的存储空间已经用完。WSLv2 使用 VHDX 文件进行存储,经常手动优化该文件可以轻松避免这一问题,具体方法如下:
Optimize your WSLv2 storage often: Due to the way storage is handled on WSLv2, the storage space used by the undelying Linux distribution is not reflected immedately, and since bitbake heavily uses storage, after several builds, you may be unaware you are running out of space. WSLv2 uses a VHDX file for storage, this issue can be easily avoided by manually optimizing this file often, this can be done in the following way:
首先需要找到发行版应用程序软件包目录,为此请以管理员身份打开 Windows Powershell 并运行:
First you need to find the distro app package directory, to achieve this open a Windows Powershell as Administrator and run:
C:\WINDOWS\system32> Get-AppxPackage -Name "*Ubuntu*" | Select PackageFamilyName
PackageFamilyName
-----------------
CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc
现在,你应该在以下路径中替换 PackageFamilyName 和你的用户,以找到你的 VHDX 文件:
You should now replace the PackageFamilyName and your user on the following path to find your VHDX file:
ls C:\Users\mkguoqx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\
Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----         2024/9/21     13:42     1204813824 ext4.vhdx
Your VHDX file path is: C:\Users\mkguoqx\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu22.04LTS_79rhkp1fndgsc\LocalState\ext4.vhdx
第一种存储优化方法:
使用 Windows Powershell 优化 VHDX 文件:
要使用下面的 optimize-vhd cmdlet,首先要在 Windows 上安装 Hyper-V 选项。然后,以管理员身份打开 Windows Powershell,优化 VHDX 文件,先关闭 WSL:
Optimize your VHDX file using Windows Powershell:
To use the optimize-vhd cmdlet below, first install the Hyper-V option on Windows. Then, open a Windows Powershell as Administrator to optimize your VHDX file, shutting down WSL first:
C:\WINDOWS\system32> wsl --shutdown
C:\WINDOWS\system32> optimize-vhd -Path C:\Users\myuser\AppData\Local\Packages\CanonicalGroupLimited.UbuntuonWindows_79abcdefgh\LocalState\ext4.vhdx -Mode full
优化 VHDX 文件时应显示进度条,现在应能在 Windows 资源管理器中正确反映存储情况。
A progress bar should be shown while optimizing the VHDX file, and storage should now be reflected correctly on the Windows Explorer.
第二种存储优化方法:
使用 DiskPart 优化 VHDX 文件:
上述 optimize-vhd cmdlet 由 Hyper-V 提供。并非所有 Windows SKU 都能安装 Hyper-V。作为替代,可以使用 DiskPart 工具。首先,以管理员身份打开 Windows 命令提示符,优化 VHDX 文件,然后关闭 WSL:
Optimize your VHDX file using DiskPart:
The optimize-vhd cmdlet noted above is provided by Hyper-V. Not all SKUs of Windows can install Hyper-V. As an alternative, use the DiskPart tool. To start, open a Windows command prompt as Administrator to optimize your VHDX file, shutting down WSL first:
C:\WINDOWS\system32> wsl --shutdown
C:\WINDOWS\system32> diskpart
DISKPART> select vdisk file="<path_to_VHDX_file>"
DISKPART> attach vdisk readonly
DISKPART> compact vdisk
DISKPART> exit
注意事项
WSLv2 目前的实现无法直接访问外部设备(如通过 USB 端口连接的设备),但它会自动将 C: 驱动器挂载到 /mnt/c/(及其他),你可以使用它来共享部署工件,以便随后通过 Windows系统烧写硬件,但你的构建目录不应位于此挂载点内。
Note
The current implementation of WSLv2 does not have out-of-the-box access to external devices such as those connected through a USB port, but it automatically mounts your C: drive on /mnt/c/ (and others), which you can use to share deploy artifacts to be later flashed on hardware through Windows, but your build directory should not reside inside this mountpoint.
8,其他wsl的powershell命令
WSL 的基本命令 | Microsoft Learn
检查 WSL 状态
wsl --status
检查 WSL 版本
wsl --version
关闭
wsl --shutdown
Terminate
wsl --terminate <Distribution Name>
导出分发版
wsl --export <Distribution Name> <FileName>
导入分发版
wsl --import <Distribution Name> <InstallLocation> <FileName>
就地导入发行版
wsl --import-in-place <Distribution Name> <FileName>
更多关 于WSL的信息可查阅:
Comparing WSL Versions | Microsoft Learn
参考:
2 Setting Up to Use the Yocto Project — The Yocto Project ® 4.0.4 documentation
Fix: WSLRegisterDistribution Failed with Error 0x8007019e (thegeekpage.com)
Install Ubuntu on WSL2 - Ubuntu WSL documentation

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

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

相关文章

C++速通LeetCode中等第11题-除自身以外数组的乘积

方法一&#xff1a;前缀积乘后缀积 class Solution { public:vector<int> productExceptSelf(vector<int>& nums) {int length nums.size();vector<int> answer(length);// answer[i] 表示索引 i 左侧所有元素的乘积// 因为索引为 0 的元素左侧没有元素…

多语言长文本 AI 关键字提取 API 数据接口

多语言长文本 AI 关键字提取 API 数据接口 AI / 文本 专有模型极速提取 多语言长文本 / 实时语料库。 1. 产品功能 支持长文本关键词提取&#xff1b;多语言关键词识别&#xff1b;基于 AI 模型&#xff0c;提取精准关键词&#xff1b;全接口支持 HTTPS&#xff08;TLS v1.0 …

C一语言—动态内存管理

目录 一、为什么要有动态内存管理 二、malloc和free &#xff08;2.1&#xff09;malloc &#xff08;2.2&#xff09;free 三、calloc和realloc &#xff08;3.1&#xff09;calloc &#xff08;3.2&#xff09;realloc 四、常见的动态内存的错误&#xff08;举例均为错…

Java设计模式(工厂模式)——抽象工厂模式(完整详解,附有代码+案例)

文章目录 5.4 抽象工厂模式5.4.1 概述5.4.2 结构5.4.3 实现5.4.4 优缺点5.4.5 使用场景 5.4 抽象工厂模式 5.4.1 概述 是一种为访问类提供一个创建一组相关或相互依赖对象的接口&#xff0c;且访问类无须指定所要产品的具体类就能得到同族的不同等级的产品的模式结构。 同族的…

【保奖思路】2024年华为杯研赛F题保奖思路分享(后续会更新)

您的点赞收藏是我继续更新的最大动力&#xff01; 一定要点击如下的卡片&#xff0c;那是获取资料的入口&#xff01; 点击链接加入【2024华为杯研赛资料汇总】&#xff1a;https://qm.qq.com/q/TPBRkrVoQyhttps://qm.qq.com/q/TPBRkrVoQy F题X射线脉冲星光子到达时间建模 问…

STM32 通过 SPI 驱动 W25Q128

目录 一、STM32 SPI 框图1、通讯引脚2、时钟控制3、数据控制逻辑4、整体控制逻辑5、主模式收发流程及事件说明如下&#xff1a; 二、程序编写1、SPI 初始化2、W25Q128 驱动代码2.1 读写厂商 ID 和设备 ID2.2 读数据2.3 写使能/写禁止2.4 读/写状态寄存器2.5 擦除扇区2.6 擦除整…

【论文笔记】BEVNeXt: Reviving Dense BEV Frameworks for 3D Object Detection

原文链接&#xff1a;https://arxiv.org/pdf/2312.01696 简介&#xff1a;最近&#xff0c;在摄像头3D目标检测任务中&#xff0c;基于查询的Transformer解码器正在超越传统密集BEV方法。但密集BEV框架有着更好的深度估计和目标定位能力&#xff0c;能全面精确地描绘3D场景。本…

AI自动直播app盘点:2024超级实用十款应用平台,终结假AI时代!

AI自动直播app盘点&#xff1a;2024超级实用十款应用平台&#xff0c;终结假AI时代&#xff01; 在2024年的科技浪潮中&#xff0c;AI自动直播技术迎来了前所未有的飞跃&#xff0c;终结了虚假AI的阴霾&#xff0c;为直播行业注入了全新的活力与可能。本文将为您盘点十款超级实…

el-table的树形结构结合多选框使用,实现单选父子联动,全选,反选功能

<template><div><el-table:data"tableData":row-key"rowKey":default-expand-all"defaultExpandAll":tree-props"treeProps"><!-- 开启树形多选 --><el-table-column v-if"showSelection" width…

无人机+自组网:中继通信增强技术详解

无人机与自组网技术的结合&#xff0c;特别是通过中继通信增强技术&#xff0c;为无人机在复杂环境中的通信提供了稳定、高效、可靠的解决方案。以下是对该技术的详细解析&#xff1a; 一、无人机自组网技术概述 无人机自组网技术是一种利用无人机作为节点&#xff0c;通过无…

【可测试性实践】C++单元测试:gtest gmock

引言 google test是目前C主流的单元测试框架&#xff0c;本文介绍如何在工程引入gtest和gmock&#xff0c;并提供入门参考示例。根据黄金圈思维我们先思考Why&#xff08;为什么做&#xff09;&#xff0c;为什么我们要进行单元测试&#xff0c;为什么要引入mock手段来测试代码…

Linux:路径末尾加/和不加/的区别

相关阅读 Linuxhttps://blog.csdn.net/weixin_45791458/category_12234591.html?spm1001.2014.3001.5482 普通文件操作 首先说明这个问题只会出现在目录和符号链接中&#xff0c;因为如果想要索引普通文件但却在路径末尾加/则会出现错误&#xff0c;如例1所示。 # 例1 zhang…

Django SQL注入-漏洞分析

1.进入项目界面 图1 项目主界面 2.访问任意不存在的目录路径报错&#xff0c;提示存在demo接口 图2 提示存在接口 3.访问/demo/&#xff0c;提示有一个name参数 图3 发现隐藏参数 4.对接口参数进行fuzz&#xff08;实战思路&#xff09;&#xff0c;vulfocus已经给出了/demo?…

Innodb存储架构

Innodb整体存储架构 Innodb是一款兼顾性能及可靠性的存储引擎&#xff0c;主要分为内存存储结构和磁盘存储结构&#xff0c;二者分别扮演着提高性能和数据持久化的工作 内存结构中定义了缓冲池、变更缓冲区、日志缓冲区、自适应哈希四个缓冲区&#xff0c;它们均是为提升查询…

docker技术(上)

一、docker简介 Docker 是一个开源的应用容器引擎&#xff0c;于 2013 年由 Solomon Hykes 推出并开源。它基于 Go 语言开发&#xff0c;遵从 Apache2.0 协议。Docker 可以让开发者将应用及其依赖包打包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 或 Windows…

文件外发控制怎么做?公司文件外发管控的方法(这五种方法你一定要学会!)

还在担心重要文件发出去就"人间蒸发"&#xff1f; 或者每次发送公司机密都提心吊胆&#xff1f; 其实&#xff0c;文件外发就像放风筝&#xff0c;你需要时刻握住“线头”&#xff0c;确保它不会飞得太远&#xff01; 今天我们来揭秘五种公司文件外发的神级管控方法…

基于SpringBoot的医院挂号就诊系统【附源码】

基于SpringBoot的高校社团管理系统&#xff08;源码L文说明文档&#xff09; 目录 4 系统设计 4.1界面设计原则 4.2功能结构设计 4.3.2 数据库物理设计 第5章 系统实现 5.1用户信息管理 5.2 医生信息管理 5.3公告类型管理 5.1公告信息管理 4…

C++进阶(2):多态

多态的概念 多态分为编译时多态(静态多态)和运行时多态(动态多态)。**编译时多态&#xff1a;**主要就是我们前面讲的函数重载和函数模版。之所以叫编译时多态&#xff0c;是因为实参传给形参的参数匹配是发生在编译时完成的&#xff08;ps&#xff1a;通常把编译时一般归为静…

常见项目场景题1(数据量很大时如何去重,实现超时处理)

数据很多&#xff0c;限制内存&#xff0c;如何去重 对于大数据量去重的场景&#xff0c;我们可以考虑使用位图(Bitmap) Bitmap 是使用二进制来表示某个元素是否存在的数组。用0和1来表示存在与不存在 使用Bitmap的话&#xff0c;一个数字占用1bit&#xff0c;大大减少内存消耗…

JVM 调优篇8 调优案例5- 逃逸分析

一 逃逸分析 1.1 概念 逃逸分析的基本行为就是分析对象动态作用域&#xff1a;当一个对象在方法中被定义后&#xff0c;对象只在方法内部使用&#xff0c;则认为没有发生逃逸。当一个对象在方法中被定义后&#xff0c;它被外部方法所引用&#xff0c;则认为发生逃逸。例如作为…