|
|
|
|
公众号矩阵

Windows 亲生的 Linux 子系统

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

作者:道哥来源:IOT物联网小镇|2021-07-22 08:03

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

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

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

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

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

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

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

安装 WSL2 的前提条件

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

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

图片

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

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

图片

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

图片

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

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

安装 WSL2

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

  1. dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart 
图片

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

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

输入的指令是:

  1. wsl --set-version Ubuntu-18.04 2 

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

图片

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

WSL2 Linux 内核升级包

图片

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

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

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

图片

同时,把 WSL 的默认版本改为 2:wsl --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:

  1. sudo apt-get update && sudo apt-get upgrade -y 
  2. sudo apt-get install xfce4 

配置 DISPLAY 环境变量

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

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

  1. $ cd 
  2. $ vi .bashrc 

在文件末尾添加:

  1. export DISPLAY=192.168.192.1:0 

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

安装服务端

图形界面有 VcXsrv 和 Xming 两款软件,我们选择前面的 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:

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

图片
  1. sudo vi /etc/locale.gen 

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

图片

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

图片

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

图片

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

图片

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

  1. sudo vi /etc/default/locale 

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

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

  1. sudo apt install language-pack-zh-hans 
  2. sudo apt install language-pack-gnome-zh-hans 
  3. sudo apt install language-pack-kde-zh-hans 

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

接下来,你还可以安装各种 IDE,探索它们是如何共享文件的...

本文转载自微信公众号「IOT物联网小镇」,可以通过以下二维码关注。转载本文请联系IOT物联网小镇公众号。

【编辑推荐】

  1. 鸿蒙官方战略合作共建——HarmonyOS技术社区
  2. 为了让你上网更爽,路由器这些年都经历了啥
  3. 六个应该避免的IT管理陷阱
  4. Java 8 失宠!开发人员向 Java 11 转移...
  5. 这5款软件工具,让你的工作效率翻倍提升
  6. 惊喜!新的Windows 10 21H2版正式发布,推出三个新功能
【责任编辑:姜华 TEL:(010)68476606】

点赞 0
分享:
大家都在看
猜你喜欢
24H热文
一周话题
本月获赞

订阅专栏+更多

带你轻松入门 RabbitMQ

带你轻松入门 RabbitMQ

轻松入门RabbitMQ
共4章 | loong576

26人订阅学习

数据湖与数据仓库的分析实践攻略

数据湖与数据仓库的分析实践攻略

助力现代化数据管理:数据湖与数据仓库的分析实践攻略
共3章 | 创世达人

12人订阅学习

云原生架构实践

云原生架构实践

新技术引领移动互联网进入急速赛道
共3章 | KaliArch

41人订阅学习

视频课程+更多

MySQL数据库运维架构实战

MySQL数据库运维架构实战

讲师:张岩峰1299人学习过

渗透测试之信息收集

渗透测试之信息收集

讲师:Margin3430人学习过

OGG(GoldenGate)管理与实战

OGG(GoldenGate)管理与实战

讲师:白丁1324人学习过

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊

51CTO服务号

51CTO官微