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

【数据结构】单链表的实现

本篇主要总结单链表是如何实现的&#xff0c;数据结构是如何管理数据的&#xff0c;详细的介绍每一步是如何实现以及各种注意事项。&#x1f680;1.单链表的实现&#x1f680;&#x1f36d;1.1单链表的尾插&#x1f36d;1.2单链表的头插&#x1f36d;1.3单链表的打印&#x1f3…...

从0到1做产品!产品设计的6个步骤

相信不少产品经理在刚入行时&#xff0c;都遇到过这样的情况&#xff1a; 接到需求后不知所措&#xff0c;然后下意识地照着竞品开始盲目地画原型。 其实&#xff0c;这样的设计过程不仅缺乏逻辑性&#xff0c;在后续阶段也很容易出现各种问题。 在此&#xff0c;跟大家分享一下…...

ESP32遥控器软硬件设计

一. 前言 做智能车 或者 四轴飞控怎么能少得了遥控器呢&#xff01;在这里给大家分享一个简单的基于ESP32遥控器的设计&#xff0c;包括软硬件以及3D外壳。 二. 硬件设计 1. 功能介绍 遥控器嘛&#xff0c;通信方式是最重要的&#xff0c;本设计支持 WIFI、蓝牙 和 2.4G&…...

vue-template-admin的keep-alive缓存与移除缓存

一&#xff0c;场景 A页面是表单页面&#xff0c;填写后需要跳转B页面。如果B页面不操作返回的话&#xff0c;应该能还原A页面的内容&#xff0c;而如果B页面点击提交&#xff0c;再回到A页面的时候&#xff0c;应该清除缓存。 二&#xff0c;实现方法 A页面要缓存数据&…...

【人工智能 AI】机器学习快速入门教程(Google)

目录 机器学习术语 标签 特性 示例 模型 回归与分类 深入了解机器学习&#xff1a;线性回归 深入了解机器学习&#xff1a;训练和损失 平方损失函数&#xff1a;一种常用的损失函数 机器学习术语 预计用时&#xff1a;8 分钟 什么是&#xff08;监督式&#xff…...

适配器模式

概览 适配器模式是一种结构型设计模式&#xff0c;用于将一个类的接口转换为客户端所期望的另一种接口。通常情况下&#xff0c;这种转换是由一个适配器类完成的&#xff0c;适配器类包装了原始类&#xff0c;并实现了客户端所期望的接口。这种模式非常适用于在不修改现有代码…...

00后跨专业学软件测试,斩获8.5K高薪逆袭职场

我想说的第一句&#xff1a;既然有梦想&#xff0c;就应该去拼搏还记得&#xff0c;我大学毕业前&#xff0c;就已经暗下决心到xxx培训机构接受培训。那个时候&#xff0c;没有任何海同公司的人主动找我或者联系过我&#xff0c;我是自己在网上发现了xxxx培训机构的&#xff01…...

数据结构和算法学习

文章目录精通一个领域切题四件套算法算法的五个条件流程图数据结构数据与信息数据信息数据结构和算法数据结构算法时间复杂度空间复杂度数组 Array优点缺点数组和链表的区别时间复杂度链表 Linked List优点缺点时间复杂度单向链表双向链表循环链表双向循环链表堆栈 Stack队列 Q…...

剑指 Offer II 012. 左右两边子数组的和相等

题目链接 剑指 Offer II 012. 左右两边子数组的和相等 easy 题目描述 给你一个整数数组 nums&#xff0c;请计算数组的 中心下标 。 数组 中心下标 是数组的一个下标&#xff0c;其左侧所有元素相加的和等于右侧所有元素相加的和。 如果中心下标位于数组最左端&#xff0c;那…...

Java货物摆放

题目描述 小蓝有一个超大的仓库&#xff0c;可以摆放很多货物。 现在&#xff0c;小蓝有 &#xfffd; n 箱货物要摆放在仓库&#xff0c;每箱货物都是规则的正方体。小蓝规定了长、宽、高三个互相垂直的方向&#xff0c;每箱货物的边都必须严格平行于长、宽、高。 小蓝希望所…...

机wordpress/外链群发

目录qq邮箱前往邮箱的设置->帐号开启IMAP/SMTP服务安全验证得到授权码163邮箱前往邮箱的设置->POP3/SMTP/IMAP开启smtp服务安全验证得到授权码总结『杂记』分享一些实用的技巧方法 安装环境&#xff0c;配置环境教程&#xff0c;推荐实用软件 软件的使用问题。 欢迎关注 …...

能源门户网站建设/排名函数rank怎么用

文章目录一、LVS负载均衡概念二、LVS负载均衡之NAT方式1、工作过程图解&#xff1a;2、通过上述其工作过程&#xff0c;总结一下NAT方式的特点三、LVS负载均衡之NAT方式配置流程详解3、实验步骤&#xff1a;&#xff08;1&#xff09;查看ip_vs模块是否加载&#xff08;2&#…...

网站栏目做树形结构图/重庆seowhy整站优化

Docker的C/S模式&#xff1a; 用户通过Docker的CLI客户端向Docker守护进程发送指令&#xff0c;然后Docker守护进程将执行结果通过Docker的CLI客户端显示给用户。 Docker也提供了与守护进程通信的API&#xff0c;叫做RemoteAPI。RemoteAPI在复杂的情况下支持使用STDIN/STDOUT/S…...

有关天猫网站建设的论文/在什么网站可以免费

java项目转maven项目&#xff0c;要注意pom.xml文件中是否定义了JDK的版本&#xff0c;要与环境保持一致。项目&#xff0c;右键&#xff0c;configure&#xff0c;选择转换为maven项目即可。转换后&#xff0c;有三个位置需要注意&#xff1a;1、Java compiler 编译级别2、…...

省建设厅网站/成人职业培训学校

试题二&#xff08;25分&#xff09; 阅读以下关于变更的叙述&#xff0c;回答问题1至问题3。 【说明】 在一个正在实施的系统集成项目中出现了下述情况&#xff1a;一个系统的用户向他所认识的一个项目开发人员抱怨系统软件中的一项功能问题&#xff0c;并且表示希望能够进…...

外网访问wordpress版式不对/百度关键词下拉有什么软件

链表 在内存空间中&#xff0c;数组和链表都是基本的数据结构&#xff0c;都是【表】&#xff0c;或者叫【线性表】。线性表是一个线性结构&#xff0c;它是一个含有n≥0个结点的有限序列&#xff0c;对于其中的结点&#xff0c;有且仅有一个开始结点没有前驱但有一个后继结点…...