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

win10 WSL2 使用Ubuntu配置与安装教程

  • Win10 22H2
  • ubuntu 22.04
  • ROS2

文章目录

    • 一、什么是WSL2
    • 二、Win10 系统配置
      • 2.1 更新Windows版本
      • 2.2 Win10系统启用两个功能
      • 2.3 Win10开启BIOS/CPU开启虚拟化(VT)(很关键)
      • 2.4 下载并安装wsl_update_x64.msi
      • 2.5 PowerShell安装组件
    • 三、PowerShell安装Ubuntu
      • 3.1 PowerShell运行`wsl --set-default-version 2`,设置默认安装WSL2版本
      • 3.2 PowerShell运行`wsl --list --online`查看可用的Linux系统版本
      • 3.3 PowerShell运行`wsl --install -d <distro name>`安装指定版本的Linux系统
      • 3.4 PowerShell运行`wsl -l -v`查看安装的Linux版本与WSL版本
      • 3.5 PowerShell运行`wsl --version`查看安装的WSL是否为最新版本
    • 四、安装Ubuntu 图形界面(可选项)
    • 五、在Ubuntu中配置systemd
    • 六、参考[win10安装wsl2并安装docker](https://blog.csdn.net/sun1613/article/details/124782691)第四节使用VS code在Win10中远程连接Ubuntu-22.04
    • 七、配置python+juypter notebook实现win10远程访问
    • 八、[安装ROS2](http://docs.ros.org/en/rolling/Installation/Ubuntu-Install-Debians.html#)

一、什么是WSL2

win10 + Linux 双系统”与“win10安装Linux虚拟机”一度是使一台电脑具备win10与ubuntu两套系统的经典方法。但是,“win10 + Linux 双系统”需要在两种系统间进行切换,不能同时在一台电脑上使用两套系统。“win10安装Linux虚拟机”虽可以避免切换的麻烦,但是性能低、启动慢、管理不便、和宿主机Win10系统互操作不方便,让双系统重度用户情愿选择也并不完美的“win10 + Linux 双系统”。

Win10 中的WSL (Windows Subsystem for Linux)的目的就是让双系统用户既不需要在系统间切换,又能做到流畅使用双系统。 本章的主角WSL2是第二代WSL,具有新的架构,使用了真正的Linux内核,几乎具有Linux的所有完整功能。WLS2可以直接原生运行Docker、VS Code、Remote-WSL等。WSL2架构图如下所示:
在这里插入图片描述
我们发现,Windows逐步向虚拟平台靠拢,Windows NT内核和Linux内核作为平级一起运行在虚拟平台之上。

二、Win10 系统配置

2.1 更新Windows版本

微软官方WSL2安装说明给出WSL的先决条件为:Windows 10版本为2004或更高版本(Windows 11也可以用WSL)。查看Win10版本步骤如下:

设置->更新和安全->操作系统内部版本信息

具体查看Win10版本步骤见Win10查看版本号的多种方法。

在这里插入图片描述
我Win10系统的版本号为22H2,如果你的版本不是,最好更新到这个最新的版本【设置->更新和安全->检查更新】。

2.2 Win10系统启用两个功能

打开 【控制面板->程序->程序和功能->启用或关闭Windows功能】,出现如下界面,启用“适用于Linux的Windows子系统”与“虚拟机平台”两个功能。注意,千万不要漏掉“虚拟机平台”。

在这里插入图片描述

2.3 Win10开启BIOS/CPU开启虚拟化(VT)(很关键)

启用步骤见Win10在BIOS中如何启用虚拟化(VT)

2.4 下载并安装wsl_update_x64.msi

将地址“https://wslstorestorage.blob.core.windows.net/wslblob/wsl_update_x64.msi”复制到浏览器,下载并安装wsl_update_x64.msi

2.5 PowerShell安装组件

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

在这里插入图片描述

三、PowerShell安装Ubuntu

3.1 PowerShell运行wsl --set-default-version 2,设置默认安装WSL2版本

在这里插入图片描述

3.2 PowerShell运行wsl --list --online查看可用的Linux系统版本

在这里插入图片描述

3.3 PowerShell运行wsl --install -d <distro name>安装指定版本的Linux系统

此处以安装Ubuntu-22.04为例:

在这里插入图片描述
A
安装完会弹出一个框,设置好用户名密码,一个专属于你的Linux系统就成了。
在这里插入图片描述
在这里插入图片描述

3.4 PowerShell运行wsl -l -v查看安装的Linux版本与WSL版本

如下图所示,我们安装的是Ubuntu-22.04版本的Linux系统,Version为2表示WSL2,若为1则为WSL。
在这里插入图片描述
至此,我们成功在Win10中安装了WSL2版本的Ubuntu 22.04系统。

3.5 PowerShell运行wsl --version查看安装的WSL是否为最新版本

若输出的信息类似下面这种,说明安装的WSL2为最新的版本。版本的不同决定了后面systemd配置是否能成功。
在这里插入图片描述
若输出为一大堆其它的信息,则需要想办法将wsl版本升级到最新。可以尝试wsl --update --web-downloadwsl --update,甚至是卸载WSL重装。无论用什么方法一定要看到上面的图片。我自己也是各种尝试了,最终也不确定一定能成功升级的方法,反正最终升级成功了。

四、安装Ubuntu 图形界面(可选项)

我开始一直执着于gnome桌面,不过最后都尝试失败了。

博客Windows10访问Ubuntu子系统(WSL)的桌面环境中给出xubuntu(是xfce4的一个扩展
)的安装方法,步骤验证过是可行的。

在这里插入图片描述

注意:win10中利用WSL来使用Ubuntu,并不一定需要安装图形界面。不安图形界面一点也不影响正常使用。可以利用Win10中安装VS code,以及Ubuntu中安装Juypyter notebook的方使,在Win10界面中进行开发。

五、在Ubuntu中配置systemd

WSL 不支持 systemd ,但是很多应用又是基于 systemd,所以要解决这个问题。

在3.5小节顺利的前提下,在Ubuntu-22.04下,新建wsl.conf,并输入如图所示的内容,保存退出。

sudo vim /etc/wsl.conf

在这里插入图片描述

然后,在win10的powershell下执行wsl --shutdown关闭Ubuntu-22.04,然后重启。在Ubuntu-22.04中输入systemctl,若打印一大堆LOG,说明配置成功。

在这里插入图片描述

六、参考win10安装wsl2并安装docker第四节使用VS code在Win10中远程连接Ubuntu-22.04

在这里插入图片描述
也可参考win10安装wsl2并安装docker第三节安装docker。这个docker安装方法真的很方便。

七、配置python+juypter notebook实现win10远程访问

  • 在Ubuntu-22.04中安装Anaconda(具体可参考Ubuntu安装Anaconda步骤及常用命令):
cd ~/Downloads
wget https://repo.anaconda.com/archive/Anaconda3-2021.11-Linux-x86_64.sh
bash Anaconda3-2021.11-Linux-x86_64.sh
  • 参考ubuntu安装jupyter 并设置远程访问 或Ubuntu下开启jupyter远程开启juyter远程访问。记住设置的密码与端口号。在Win10的浏览器内输入localhost:端口号回车,看到有提示输入密码的框输入设置的密码就能在Win10下开发基于python的Linux项目了。

八、安装ROS2

相关文章:

win10 WSL2 使用Ubuntu配置与安装教程

Win10 22H2ubuntu 22.04ROS2 文章目录一、什么是WSL2二、Win10 系统配置2.1 更新Windows版本2.2 Win10系统启用两个功能2.3 Win10开启BIOS/CPU开启虚拟化(VT)&#xff08;很关键&#xff09;2.4 下载并安装wsl_update_x64.msi2.5 PowerShell安装组件三、PowerShell安装Ubuntu3.…...

LeetCode每日一题(28. Find the Index of the First Occurrence in a String)

Given two strings needle and haystack, return the index of the first occurrence of needle in haystack, or -1 if needle is not part of haystack. Example 1: Input: haystack “sadbutsad”, needle “sad” Output: 0 Explanation: “sad” occurs at index 0 and…...

Android 圆弧形 SeekBar

效果预览package com.gcssloop.widget;import android.annotation.SuppressLint;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Matrix;import android.graph…...

java 字典

java 字典 数据结构总览 Map Map 描述的是一种映射关系&#xff0c;一个 key 对应一个 value&#xff0c;可以添加&#xff0c;删除&#xff0c;修改和获取 key/value&#xff0c;util 提供了多种 Map HashMap: hash 表实现的 map&#xff0c;插入删除查找性能都是 O(1)&…...

【企业服务器LNMP环境搭建】mysql安装

MySQL安装步骤&#xff1a; 1、相关说明 1.1、编译参数的说明 -DCMAKE_INSTALL_PREFIX安装到的软件目录-DMYSQL_DATADIR数据文件存储的路径-DSYSCONFDIR配置文件路径 (my.cnf)-DENABLED_LOCAL_INFILE1使用localmysql客户端的配置-DWITH_PARTITION_STORAGE_ENGINE使mysql支持…...

vue自定义指令以及angular自定义指令(以禁止输入空格为例)

哈喽&#xff0c;小伙伴们&#xff0c;大家好啊&#xff0c;最近要实现一个vue自定义指令&#xff0c;就是让input输入框禁止输入空格建立一个directives的指令文件&#xff0c;里面专门用来建立各个指令的官方文档&#xff1a;自定义指令 | Vue.js (vuejs.org)我们都知道vue中…...

异常 复习

异常复习 异常(广义)&#xff1a;泛指程序中一切不正常的情况 错误&#xff1a;例如内存不够用,程序是无法解决的 异常(狭义)&#xff1a;程序在运行中出现问题,但是可以通过异常处理机制处理,程序可以继续向后执行 异常体系 Throwable类有两个直接子类&#xff1a;Excepti…...

K8s:开源安全平台 kubescape 实现 Pod 的安全合规检查/镜像漏洞扫描

写在前面 生产环境中的 k8s 集群安全不可忽略&#xff0c;即使是内网环境容器化的应用部署虽然本质上没有变化&#xff0c;始终是机器上的一个进程但是提高了安全问题的处理的复杂性分享一个开源的 k8s 集群安全合规检查/漏洞扫描 工具 kubescape博文内容涉及&#xff1a; kube…...

C#中,FTP同步或异步读取大量文件

一次快速读取上万个文件中的内容 在C#中&#xff0c;可以使用FTP客户端类&#xff08;如FtpWebRequest&#xff09;来连接FTP服务器并进行文件操作。一次快速读取上万个文件中的内容&#xff0c;可以采用多线程的方式并发读取文件。 以下是一个示例代码&#xff0c;用于读取FT…...

STM32单片机的FLASH和RAM

STM32内置有Flash和RAM&#xff08;而RAM分为SRAM和DRAM&#xff0c;STM32内为SRAM&#xff09;&#xff0c;硬件上他们是不同的设备存储器、属于两个器件&#xff0c;但这两个存储器的寄存器输入输出端口被组织在同一个虚拟线性地址空间内。 MDK预处理、编译、汇编、链接后编…...

Java 二叉树的遍历

二叉树的遍历&#xff08;traversing binary tree&#xff09;是指从根结点出发&#xff0c;按照某种次序依次访问二叉树中所有的结点&#xff0c;使得每个结点被访问依次且仅被访问一次。前序遍历&#xff08;根 左 右&#xff09;先访问根结点&#xff0c;然后前序遍历左子树…...

实习日记-C#

数据类型 字符串常量 string a "hello, world"; // hello, world string b "hello, world"; // hello, world string c "hello \t world"; // hello world string d "hello \t wor…...

Tech Lead如何引导团队成员解决问题?

作为一个开发团队的Tech Lead&#xff0c;当团队成员向你寻求帮助时&#xff0c;你有没有说过下面这些话&#xff1f; 你别管了&#xff0c;我来解决这个问题你只要。。。就行了你先做其他的吧&#xff0c;我研究一下&#xff0c;然后告诉你怎么做 当我们说这些话时&#xff…...

07--组件

一、小程序组件分类微信团队为开发者提供了一系列基础组件&#xff0c;开发者可以通过组合这些基础组件进行快速开发。小程序中的组件也是非常丰富的&#xff0c;开发者可以基于组件快速搭建出漂亮的页面结构。小程序中的组件其实相当于网页中的HTML标签&#xff0c;只不过标签…...

怎么做好一个完整的项目复盘

复盘&#xff0c;是运营必不可少的能力&#xff0c;小到一次买菜的经历&#xff0c;大到百亿千亿的投资项目&#xff0c;都可以通过复盘来总结规律、提升水平。简单说来&#xff0c;复盘可以达到的效果有两条&#xff1a;优化弱项&#xff0c;强化强项明确自己的价值&#xff0…...

浅谈一下mysql8.0与5.7的字符集

修改字符集 修改步骤 在MySQL8.0版本之前&#xff0c;默认字符集为1atin1,utf8字符集指向的是utf8mb3。网站开发人员在数据库设计的时候往往会将编码修改为ut8字符集。如果遗忘修改默认的编码&#xff0c;就会出现乱码的问题。从MySQL8.0开始&#xff0c;数据库的默认编码将改…...

paddle推理部署(cpu)

我没按照官方文档去做&#xff0c;吐槽一下&#xff0c;官方文档有点混乱。。一、概述总结起来&#xff0c;就是用c示例代码&#xff0c;用一个模型做推理。二、示例代码下载https://www.paddlepaddle.org.cn/paddle/paddleinferencehttps://github.com/PaddlePaddle/Paddle-In…...

想开发IM集群?先搞懂什么是RPC!

即时通讯网官方技术群和社区里&#xff0c;经常有开发者在纠结怎么开发IM集群&#xff0c;虽然真正的使用人数&#xff0c;可能用个人电脑单机都能支撑。你也许会说&#xff0c;明明不需要用到IM集群&#xff0c;干吗要自找麻烦&#xff1f;答曰&#xff1a;“老板说这个得有&a…...

案例13-前端对localStorage的使用分析

一&#xff1a;背景介绍 前端在调用后端接口获取某一个人的评论次数、获赞次数、回复次数。调用之后判断后端返回过来的值。如果返回回来的值是0的话&#xff0c;从缓存中获取对应的值&#xff0c;如果从缓存中获取的评论次数为空那么其他两个的次数也为0。 二&#xff1a;思路…...

CNNIC第51次中国互联网络发展状况统计报告用户规模变化发布、解读与白杨SEO看法

一、第51次《中国互联网络发展状况统计报告》发布 3月2日&#xff0c;中国互联网络信息中心&#xff08;简称CNNIC&#xff09;在京发布第51次《中国互联网络发展状况统计报告》。《报告》显示&#xff0c;截至2022年12月&#xff0c;我国网民规模达10.67亿&#xff0c;较2021…...

Debian系统简介

目录 Debian系统介绍 Debian版本介绍 Debian软件源介绍 软件包管理工具dpkg dpkg核心指令详解 安装软件包 卸载软件包 查询软件包状态 验证软件包完整性 手动处理依赖关系 dpkg vs apt Debian系统介绍 Debian 和 Ubuntu 都是基于 Debian内核 的 Linux 发行版&#xff…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

【位运算】消失的两个数字(hard)

消失的两个数字&#xff08;hard&#xff09; 题⽬描述&#xff1a;解法&#xff08;位运算&#xff09;&#xff1a;Java 算法代码&#xff1a;更简便代码 题⽬链接&#xff1a;⾯试题 17.19. 消失的两个数字 题⽬描述&#xff1a; 给定⼀个数组&#xff0c;包含从 1 到 N 所有…...

条件运算符

C中的三目运算符&#xff08;也称条件运算符&#xff0c;英文&#xff1a;ternary operator&#xff09;是一种简洁的条件选择语句&#xff0c;语法如下&#xff1a; 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true&#xff0c;则整个表达式的结果为“表达式1”…...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

Python爬虫(二):爬虫完整流程

爬虫完整流程详解&#xff08;7大核心步骤实战技巧&#xff09; 一、爬虫完整工作流程 以下是爬虫开发的完整流程&#xff0c;我将结合具体技术点和实战经验展开说明&#xff1a; 1. 目标分析与前期准备 网站技术分析&#xff1a; 使用浏览器开发者工具&#xff08;F12&…...

【单片机期末】单片机系统设计

主要内容&#xff1a;系统状态机&#xff0c;系统时基&#xff0c;系统需求分析&#xff0c;系统构建&#xff0c;系统状态流图 一、题目要求 二、绘制系统状态流图 题目&#xff1a;根据上述描述绘制系统状态流图&#xff0c;注明状态转移条件及方向。 三、利用定时器产生时…...

均衡后的SNRSINR

本文主要摘自参考文献中的前两篇&#xff0c;相关文献中经常会出现MIMO检测后的SINR不过一直没有找到相关数学推到过程&#xff0c;其中文献[1]中给出了相关原理在此仅做记录。 1. 系统模型 复信道模型 n t n_t nt​ 根发送天线&#xff0c; n r n_r nr​ 根接收天线的 MIMO 系…...

学校时钟系统,标准考场时钟系统,AI亮相2025高考,赛思时钟系统为教育公平筑起“精准防线”

2025年#高考 将在近日拉开帷幕&#xff0c;#AI 监考一度冲上热搜。当AI深度融入高考&#xff0c;#时间同步 不再是辅助功能&#xff0c;而是决定AI监考系统成败的“生命线”。 AI亮相2025高考&#xff0c;40种异常行为0.5秒精准识别 2025年高考即将拉开帷幕&#xff0c;江西、…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...