Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >WSL2:Windows 亲生的 Linux 子系统

WSL2:Windows 亲生的 Linux 子系统

作者头像
IOT物联网小镇
发布于 2021-08-13 07:12:13
发布于 2021-08-13 07:12:13
3.4K00
代码可运行
举报
文章被收录于专栏:IOT物联网小镇IOT物联网小镇
运行总次数:0
代码可运行

在上一篇文章中,我们主要聊了一下:在 Windows 系统中,安装 WSL 子系统。

文章在此:WSL:在 Windows 系统中开发 Linux 程序的又一神器

但是 WSL 只是长得像 Linux 而已,虽然在这个子系统中,我们可以执行 Linux 程序,但是到了底层,WSL 调用的还是 win32 API

也就是说:WSL 只是一个适配层。

后来,微软终于放出了 WSL2 这个真正的 Linux 子系统,这是一个真正的 Linux 完整内核,与传统的虚拟机 VitualBoxVMWare 一样,但是它与宿主机的互操作性更好。

为了完整性,我们就继续把这个流程给走完。

在这个过程中遇到的问题、需要的安装软件等资源,已经上传到网盘,在文末有下载地址。

安装 WSL2 的前提条件

在开始之前,我们先来看一下目前电脑中的 WSL 的版本。

Windows 命令行窗口,输入指令: wsl --list --verbose(或者输入简化版本: wsl -l -v),得到结果:

可以看到我们上一篇文章中安装的 Ubuntu-18.04,而且 WSL 的版本是 1

如果要升级到 WSL2Windows 操作系统的内核版本必须满足一定的要求,如下:

我们就按照官方的要求,检查一下自己的电脑是否满足需求:选择 Windows 徽标键 Win + R,然后键入 winver,选择 “确定”。

看来我的系统能满足要求,那就继续下一个步骤!

如果你的内核版本不满足这个需求,可以搜索关键字 “WIN10 获取内部预览版本”,就可以找到解决方案。

安装 WSL2

继续以管理员身份启动 PowerShell,然后执行指令:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

此时,又到了重启电脑的时候!

重启之后,继续在 PowserShell 中,把 Ubuntu-18.04 设置为 WSL2 版本。

输入的指令是:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
wsl --set-version Ubuntu-18.04 2

这个步骤可能会遇到这样的问题:

解决方法:从微软的官网下载 WSL2 Linux 内核升级包,下载地址是:

WSL2 Linux 内核升级包

也可以从文末的网盘中下载

下载之后,一路 Next 安装即可。

此时,在 PowerShell 中重新执行 wsl --set-version Ubuntu-18.04 2 指令(需要等待一段时间,大概 1 分钟左右吧):

同时,把 WSL 的默认版本改为 2wsl --set-default version 2

此时,我们再执行指令 wsl -l -v 来查看一下,就变成 WSL2 版本了:

现在,重新启动一下 Ubuntu-18.04 系统,虽然还是黑乎乎的窗口,但是它可是一个完整、纯正的 Linux 操作系统!

安装桌面环境

这部分的操作,参考:https://autoize.com/xfce4-desktop-environment-and-x-server-for-ubuntu-on-wsl-2/。

关于 Linux 的桌面环境,它与 Windows 桌面环境的理念有一些不一样。

Linux 系统中,桌面环境是一个独立的应用程序,不属于操作系统的一部分。

换句换说,即使没有桌面环境,也可以很愉快的玩 Linux 系统,比如那些服务器之类的设备。

Linux 中的桌面由客户端和服务端组成,它们之间通过一个协议来通信,俗称:X11

服务端:负责图形的显示; 客户端:根据系统设置的 DISPLAY 环境变量,把显示图形的请求发送给服务端;

因此,为了让我们的 Ubuntu 显示图形界面,我们就需要安装一个服务端软件和客户端软件。

注意:这里的服务端软件是安装在 Windows 系统中的,客户端是安装在 Ubuntu-18.04 系统中的。

安装客户端

Ubuntu-18.04 的终端窗口中,执行如下指令安装客户端软件 xfce4

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get update && sudo apt-get upgrade -y
sudo apt-get install xfce4
配置 DISPLAY 环境变量

因为 Ubuntu 中的客户端 xfce4 需要把显示请求,通过网络发送给 Windows 上的服务端,因此需要知道 Windows 系统的 IP 地址,在 Windows 系统中的命令行窗口中查看:ipconfig

然后在 Ubuntu-18.04 中把这个 IP 地址,配置到家目录下的 .bashrc 文件中:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ cd
$ vi .bashrc

在文件末尾添加:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
export DISPLAY=192.168.192.1:0

保存、关闭文件之后,执行:source ~/.bashrc 更新即可。

安装服务端

图形界面有 VcXsrvXming 两款软件,我们选择前面的 VcXsrv

同样的,我已经把 vcxsrv-64.1.20.9.0.installer.exe 放在网盘里,下载后一路 Next 安装。

安装之后,启动 Windows 桌面上的 XLaunch 程序:

然后,按照参考文档中的配置,如下:

在最后一个步骤,可以把配置信息保存在桌面上。

启动客户端

Ubuntu-18.04 系统中的命令行窗口,执行指令:startxfce4

此刻,神器的事情就发生了:你的 Windows 系统中是不是就跳出了下面这个窗口:

可以打开桌面上 File System,是不是看到了很多熟悉的身影?

在打开 mnt 目录,是不是看到了 Windows 系统中的盘符?

但是,中文信息显示的都是乱码!那我们就来安装中文语言支持包。

中文支持

Ubuntu-18.04 系统命令行窗口,设置 locale:

此时,我们可以使用桌面环境中的终端窗口,如下图所示:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vi /etc/locale.gen

把下图中的蓝色这一行复制,然后去掉前面的 #空格,然后保存、退出。

然后在终端中执行指令:sudo locale-gen

单机右上角的用户名,选择 【Log Out..】

此时,Ubuntu 虚拟机的 WSL 窗口中的 xfce4 客户端会退出,再次执行 startxfce4 启动客户端:

再次,在桌面中的终端窗口中,把 locale 改为中文:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo vi /etc/default/locale

LANG=C.UTF-8 改为 LANG=zh_CN.UTF-8

然后,把下面这个几个中文语言包给它安装进去:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt install language-pack-zh-hans
sudo apt install language-pack-gnome-zh-hans
sudo apt install language-pack-kde-zh-hans

此刻,你再看一下刚才的那些乱码,是不是已经正确显示中文了?

------ End ------

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-07-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 IOT物联网小镇 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
CentOS7下MySQL5.7安装与配置(YUM)
改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。改完之后的效果如下所示:
lyb-geek
2022/03/10
2.1K0
CentOS7下MySQL5.7安装与配置(YUM)
手把手教你部署一套生产级的 mysql 数据库
实际的软件项目开发过程中,不可避免的需要用到关系型数据库,比较主流的关系型数据库有 mysql、oracle、sql server、postgresql、db2 等等,当然目前最主流的数据库非 mysql 莫属,相比其他数据库,mysql 性能可靠,使用简单,而且开源免费。
Java极客技术
2022/12/04
1K0
手把手教你部署一套生产级的 mysql 数据库
CentOS7 mysql5.7安装并配置主主同步
安装前准备 localectl set-locale LANG=zh_CN.utf8 rpm -qa | grep mariadb #卸载mariadb rpm -e --nodeps $(rpm -qa | grep mariadb) 安装 #下载或上传离线安装包 mysql-5.7.31-1.el7.x86_64.rpm-bundle.tar #下载地址https://dev.mysql.com/downloads/mysql/ wget https://cdn.mysql.com//Downlo
肖哥哥
2020/08/06
8010
centos7下yum安装mysql5.7
在 https://dev.mysql.com/downloads/repo/yum/ (opens new window) 找到 yum 源 rpm 安装包
章工运维
2023/05/24
4980
centos7下yum安装mysql5.7
CentOS7系统使用rpm方式安装MySQL5.7
参考:https://blog.csdn.net/wudinaniya/article/details/81094578
别先生
2020/09/01
2.1K0
CentOS7系统使用rpm方式安装MySQL5.7
CentOS在线安装Mysql5.7
官方地址:https://dev.mysql.com/downloads/repo/yum/
名山丶深处
2022/05/10
1K0
CentOS7离线安装MySql5.7(亲测好用)
在https://dev.mysql.com/downloads/mysql/选择Archives选项卡,产品版本选择5.7.36,操作系统选择Red Hat Enterprise Linux 7/Oracle Linux 7,把OS的版本选择为all,直接下载mysql-5.7.36-1.el7.x86_64.rpm-bundle.tar,所有的rpm包都在里面。可以通过下面的命令来下载rpm包:
I Teach You 我教你
2023/07/18
5.2K1
CentOS 6.x 安装mysql5.7记录
MySQL 5.7可谓是一个令人激动的里程碑,在默认了InnoDB引擎的基础上,新增了ssl、json、虚拟列等新特性。相对于postgreSQL和MariaDB而言,MySQL5.7做了大量“补短”操作。虽然市面上mysql58已经出来了,但只推了windows升级版,没有真正的mysql5.8安装包,说明还在测试阶段,等mysql58稳定了,后期再写一遍58安装教程。
陈哈哈
2020/07/06
1.1K0
CentOS 6.x 安装mysql5.7记录
CentOS7下安装MySQL教程(rpm方式)
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar
吾非同
2021/08/05
1.3K0
CentOS 7 安装 MySQL 5.7
官网下载地址:http://dev.mysql.com/downloads/mysql/
OY
2022/03/17
9280
CentOS 7 安装 MySQL 5.7
centos7 安装 Mysql 5.7.28,详细完整教程
一开始的时候我们安装的yum,每次yum操作都会更新一次,耗费时间,我们把他卸载掉
Lansonli
2021/10/09
46.1K9
centos7安装mysql(完整)
官网5.7版本:https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.29-1.el7.x86_64.rpm-bundle.tar
执笔记忆的空白
2020/12/24
1.2K0
centos7下安装mysql5.7(rpm)「建议收藏」
可以选择 RPM Bundle,下载完记得解压 tar -xvf xxx.tar
全栈程序员站长
2022/08/11
1.4K0
centos7下安装mysql5.7(rpm)「建议收藏」
0618-6.1.1-如何在CDH6集群内节点安装MySQL5.7.22
在安装CDH集群时,可能会选择不同外部数据库作为集群的元数据库,具体可以参考《CDH安装前置准备》。在这里选择MySQL作为集群的元数据库,MySQL有两种安装方式,RPM或者TAR包的方式进行安装。Fayson在使用RPM的方式安装的过程中遇到mariadb-libs依赖包冲突的问题,因为RPM安装MySQL时会自动安装mysql-community-libs依赖包,而在安装Cloudera Agent服务时会强依赖mariadb-libs包,导致mariadb-libs和mysql-community-libs包冲突,导致Agent服务安装失败。因此本文档采用TAR方式在ReadHat7.2上安装MySQL5.7.22。
Fayson
2019/05/14
9440
0618-6.1.1-如何在CDH6集群内节点安装MySQL5.7.22
1. Centos6.5 安装MySQL 5.7
rpm -qa | grep mysql 如果存在mysql-lib则删除: rpm -e --nodeps mysql-libs
卡伊德
2022/09/13
2710
Mysql5.7 rpm离线安装
下载rpm bundle包 https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.32-1.sles12.x86_64.rpm-bundle.tar 卸载CentOS7系统自带的mariadb > rpm -qa|grep mariadb > rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64 安装依赖 > yum install perl* cpan net-
入门笔记
2022/06/02
1.4K0
中班小朋友都会的 CentOS 7 下安装MySQL 5.7!
准备工作 我们使用yum安装,轻松加愉快! 为了后续下载MySQL速度快一点,我们可以更换一下CentOS默认的yum源,就换成阿里的。 # 看一下默认的yum源 cd /etc/yum.repos.d/ && ll # 备份原来的yum源 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup # 下载新的 CentOS-Base.repo 到 /etc/yum.repos.d/ wget -O /et
行百里er
2020/12/02
5540
中班小朋友都会的 CentOS 7 下安装MySQL 5.7!
【MySQL】第一节—MySQL 在 Centos 7环境安装
云边有个稻草人
2025/05/30
2950
centos7下rpm安装mysql5.7
1.wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-1.el7.x86_64.rpm-bundle.tar 2.按照依赖关系依次安装rpm包 依赖关系依次为common→libs→client→server
@凌晨
2020/07/13
1.2K0
Linux环境搭建系列(2) —— MySQL 的安装
由于不同的 Linux 版本对应着不同的的 MySQL 版本,因此我们需要先找到适合我们所安装的 Linux 操作系统。在这里我将以 ContOS 7.5 为例,开始在 Linux 上安装与配置 MySQL。
求和小熊猫
2020/11/25
7400
Linux环境搭建系列(2) —— MySQL 的安装
相关推荐
CentOS7下MySQL5.7安装与配置(YUM)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验