当前位置: 首页 > 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…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

边缘计算医疗风险自查APP开发方案

核心目标:在便携设备(智能手表/家用检测仪)部署轻量化疾病预测模型,实现低延迟、隐私安全的实时健康风险评估。 一、技术架构设计 #mermaid-svg-iuNaeeLK2YoFKfao {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg…...

通过Wrangler CLI在worker中创建数据库和表

官方使用文档&#xff1a;Getting started Cloudflare D1 docs 创建数据库 在命令行中执行完成之后&#xff0c;会在本地和远程创建数据库&#xff1a; npx wranglerlatest d1 create prod-d1-tutorial 在cf中就可以看到数据库&#xff1a; 现在&#xff0c;您的Cloudfla…...

Debian系统简介

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

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

定时器任务——若依源码分析

分析util包下面的工具类schedule utils&#xff1a; ScheduleUtils 是若依中用于与 Quartz 框架交互的工具类&#xff0c;封装了定时任务的 创建、更新、暂停、删除等核心逻辑。 createScheduleJob createScheduleJob 用于将任务注册到 Quartz&#xff0c;先构建任务的 JobD…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

Maven 概述、安装、配置、仓库、私服详解

目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...