【WSL】[01] windows subsytem linux 配置和使用 - ubuntu GUI安装

news2024/9/28 5:31:37

第【1】章前言:

AI的训练和设计似乎ubuntu是必要的,而且,GPU的配置似乎也是要在Ubuntu下,某些模式版本才能兼容。单独搞一个编译服务器是个思路,但是,如果资金不够,也许要考虑在Windwos和Linux的系统共生下做点文章。

Windows 开始提供了内嵌的对Linux的子系统兼容模式。利用这个模式可以在windows操作系统环境直接用应用软件的方式,操作子系统。很显然,这种方式比之前的双操作系统,重复启动,和利用Vmware在一个摆烂的环境里面运行要好的多。


【案】作者安装windows的guide做了很多实验,发现遇到很多问题,这里大致给出来思路和笔者实际采用的解决办法。


毫无疑问,先安装WSL(windows subsystem linux是必须的) 

1 WSL(适用于 Linux 的 Windows 子系统)的安装:

开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。 通过适用于 Linux 的 Windows 子系统 (WSL),开发人员可以安装 Linux 发行版(例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,不用进行任何修改,也无需承担传统虚拟机或双启动设置的费用。

1.1 管理员模式运行 PowerShell 或 Windows CMD

1.2 确认一下,自己的电脑以前有没有装WSL

wsl -l -v

如果命令无法执行,或者找不到linux的版本,那就是没装过,继续下面的步骤:

1.3 wsl安装

输入下面命令

wsl --install
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
wsl --set-default-version 2

1.4 注意,每次安装后,要重启电脑,否则步骤白做。 


2 安装LINUX系统,@Ubuntu:

这里微软的guide给了很多可能的方法,最傻的办法,就是用windows的软件商店,下载一个ubuntu。这看起来时候很完美,但是,笔者的电脑因为资源的原因,C盘已经很紧张了,在C盘里面挤进去任何东西,都会音响整个系统的效率。用windows软件商店直接下载安装的办法,因为笔者完全不知道windows给装哪里去了,因为没有选择项,可以,预计,大概率就是C盘user\appdata之类地方,所以,这个方法笔者就不用了,这里参考了:装到D盘的自己定制的方法。笔者自己做了一遍,亲测可用【详见参考2】

2.1 在D盘要安装的位置新建linux文件夹:

(base) PS C:\WINDOWS\system32> d:
(base) PS D:\> cd .\Linux\  

新建,并进入这个文件夹 

2.2 下载Ubuntu:

Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing

 下载需要一定的时间,泡个咖啡:========================================也许你可以找一个其他更快的网站

(base) PS D:\Linux> ls                                                                                                  

    目录: D:\Linux


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
-a----        2022/12/29      1:17      452997756 Ubuntu20.04.appx

(base) PS D:\Linux> Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
(base) PS D:\Linux> Expand-Archive .\Ubuntu.zip -Verbose
详细信息: 正在准备扩展...
详细信息: 正在目标“D:\Linux\Ubuntu.zip”上执行操作“Expand-Archive”。
详细信息: 正在目标“目标: D:\Linux\Ubuntu”上执行操作“创建目录”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\SmallTile.scale-200.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\SplashScreen.scale-200.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square150x150Logo.scale-200.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\LargeTile.scale-200.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.altform-unplated_targetsize-16.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.altform-unplated_targetsize-256.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.altform-unplated_targetsize-32.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.altform-unplated_targetsize-48.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.scale-200.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.targetsize-16.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.targetsize-24.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.targetsize-24_altform-unplated.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.targetsize-256.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.targetsize-32.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Square44x44Logo.targetsize-48.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\StoreLogo.scale-200.png”。
详细信息: 已创建“D:\Linux\Ubuntu\Assets\Wide310x150Logo.scale-200.png”。
详细信息: 已创建“D:\Linux\Ubuntu\resources.pri”。
详细信息: 已创建“D:\Linux\Ubuntu\install.tar.gz”。
详细信息: 已创建“D:\Linux\Ubuntu\ubuntu2004.exe”。
详细信息: 已创建“D:\Linux\Ubuntu\AppxManifest.xml”。
详细信息: 已创建“D:\Linux\Ubuntu\AppxBlockMap.xml”。
详细信息: 已创建“D:\Linux\Ubuntu\[Content_Types].xml”。
详细信息: 已创建“D:\Linux\Ubuntu\AppxMetadata\CodeIntegrity.cat”。
详细信息: 已创建“D:\Linux\Ubuntu\AppxSignature.p7x”。

然后执行下面四条命令。如下图

Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose
cd .\Ubuntu\
.\ubuntu2004.exe
(base) PS D:\Linux> cd .\Ubuntu\
(base) PS D:\Linux\Ubuntu> .\ubuntu2004.exe
Installing, this may take a few minutes...

由于第一次安装,这时候,会询问你的用户名:

Please create a default UNIX user account. The username does not need to match your Windows username.
For more information visit: https://aka.ms/wslusers
Enter new UNIX username:

我们是给donkeycar,用的,用donkeycar01,密码:123456【案,笔者自己的笔记,以后怕自己忘了,密码不密呵呵】

Enter new UNIX username: donkeycar01
New password:
Retype new password:

passwd: password updated successfully
Installation successful!
适用于 Linux 的 Windows 子系统现已在 Microsoft Store 中可用!
你可以通过运行“wsl.exe --update”或通过访问 https://aka.ms/wslstorepage 进行升级
从 Microsoft Store 安装 WSL 将可以更快地获取最新的 WSL 更新。
有关详细信息,请访问 https://aka.ms/wslstoreinfo

To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

Welcome to Ubuntu 20.04 LTS (GNU/Linux 5.10.16.3-microsoft-standard-WSL2 x86_64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

  System information as of Thu Dec 29 08:06:48 CST 2022

  System load:  0.05               Processes:             8
  Usage of /:   0.4% of 250.98GB   Users logged in:       0
  Memory usage: 0%                 IPv4 address for eth0: 172.26.219.242
  Swap usage:   0%

0 updates can be installed immediately.
0 of these updates are security updates.


The list of available updates is more than a week old.
To check for new updates run: sudo apt update


This message is shown once once a day. To disable it please create the
/home/donkeycar01/.hushlogin file.

安装成功后,windows会提示你以后可以做那些事情。而且直接进到你刚才的系统里面:

这样就已经安装好了一个ubuntu的版本,但是,这个版本是不带GUI,这个很不方便,后面,我们要把他搞成带GUI的。

 2.3 查看安装的版本:

因为刚才已经自动进入我们的linux系统了,要查看安装,需要打开一个新的Powershell,然后,在windows的命令行查看:

【案,当完成了linux安装后,有两个命令行,一个是windows,一个是linux,和操控linux发行版本有关的wsl都在windows cmd里面,别弄错了】

wsl -l -v


【案,2.4,这节里面,笔者还是尝试了用微软的软件商店去安装的方式,结果发现,两个版本好像会冲突,anyway,最终失败了,步骤记录如下,大家可以跳过】 

  2.4 在微软的应用商店,重新下载Ubuntu 20.04.5 LTS:

这样在windos开始菜单,就可以访问:

打开后,注意,现在是带ubuntu的图标。


 2.5 安装图形界面:

【案,在运行linux@windows之前,需要安装一个displayer,这个displayer是跑在windows里面,然后,linux发行版本,例如ubuntu跑起来,要设置到display的设备,这样就可以在windows里面虚拟显示了,这个能显示的软件库和版本很多,VcXsrv似乎用的很多,笔者这里也就随大流了】

 2.5.1 方法1:安装VcXsrv

VcXsrv Windows X Server download | SourceForge.net

【案,对第一个显示实例,注意Display number 要设置为0】【案,注意选择显示方式,One large window】

[案,为避免没法,访问控制也去掉] ,点击完成,应该是一个黑色的窗口。以后,ubuntu的GUI界面就在里面显示。

 2.5.2 开始安装图形界面:

sudo apt install ubuntu-desktop

花的时间有的长啊, 

 

【案,由于我们不是通过微软的应用商店安装的,所以,我们也无法通过windows[开始]找到应用来启动,好在,微软还提供了一个功能比较完善的Terminal,通过他可以启动我们的ubuntu所以,这里先把他下载安装一下,这个可以从应用仓库里面搞出来。】 

2.5.3 在微软应用仓库下载多系统支持的CMD命令程序:

  •  2.5.3.1 用这个终端Terminal启动ubuntu的方法:

 

 【案,笔者安装ubuntu,也曾经尝试过用windows的应用仓库安装ubuntu,启动应该是本章,2.4段落小节所示】

  •  2.5.3.2 如果是用应用参考安装的ubuntu,启动方法如2.4小结所以,当然,也可以在终端里面启动,如下:

 

 3 GUI的安装和使用:

 3.1 Ubuntu官网给出的WSL的方法:

 【案,网上有很多博客,大多写得都是自己按照的经验和问题,不够系统,笔者,发现了ubuntu官网有一个很好的ubuntu官网WSL的例子】

前面两节,我们都已经做好,这里就跳过了。我们从第3步,【Download Ubuntu】开始在累述一下

3.2 Download Ubuntu

3.2.1 Microsoft Store app

        Ubuntu官网先给出了windows应用商店的方式,由于笔者这部分没有做,大家自己去看一下官网:Download Ubuntu

3.2.2  命令行的方法:

  • 【案,我们在2.2已经做了这个工作,但是,我感觉官网的方法更好,所以,还是有必要搞出来,做参考】
    • 先打开:Powershell
    • 然后用,去看一下所有支持WSL的linux的版本
wsl --list --online

  •  找到一个版本,然后安装
wsl --install -d Ubuntu-20.04

【这个方法是搞到了C盘里面,不知道,如果先进到一个D盘的目录,然后安装会不会好一点?】

 3.2.3 配置ubuntu:全更新+Enable systemd

 官网强调了,更新需要更新所有的最新的包,这点是前面忽略掉的

先做:

sudo apt update

然后,做一个彻底更新:

sudo apt full-upgrade
sudo nano /etc/wsl.conf

在wsl.conf里面增加下面这段:

[boot]
systemd=true

 然后,通过在powershell运行命令:

wsl --shutdown

重启ubuntu

 3.4 安装GUI 包

  • 先更新最新的包:
sudo apt update
  • 先试试看X11的小应用
sudo apt install x11-apps

运行:xeyes, a “follow the mouse” application

xeyes &

【案,&是异步运行的意思,命令行响应是即使的,但是程序的运行是后台的,运行的时候遇到了一个无法显示的问题】

【Can't open display:的报错解决】

donkeycar01@DESKTOP-M4INDEG:~$ xcalc
Error: Can't open display: 172.17.80.1:0.0

Error: Can't open display: 172.17.80.1:0.0
[1]+  Exit 1                  xeyes

【案,笔者在这里找了很久的原因,

1 怀疑配置错误了,DISPLAY 0.0的配置错误?结果不是,在vi ~/.bashrc的配置是正确的

2 怀疑是内部网址不对?172.17.80.1 用ipconfig 查了,没错

3 防火墙的问题吗?

确实是windows防火墙问题:

解决办法:

 【案,在“允许应用通过防火墙,这个设置里面,我们点击后出现了豁免的程序列表,我们之前装上,用于显示ubuntu的VcXsrv,某些权限没有开,如下图,我们勾选两个xserver的权限都放开,然后,我们再运行”】

 打开了权限后,刚才x11的GUI的应用可以跑了,这样GUI的运行环境准备好了。

 3.5 运行ubuntu的桌面:

先打开:XLaunch,

 在ubuntu命令行里面输入:

gnome-session

 

【案,上来就是一对基础设置,然后,就是你见到的界面了】


 【其他报错】

 [出现错误 2147942402 (0x80070002) (启动“ubuntu2004.exe”时)]

【案,原因:之前配置的Ubuntu,似乎搞串了,这里把ubuntu.exe改成下图这个就可以】

 C:\WINDOWS\system32\wsl.exe -d Ubuntu-20.04

 A display manager is a program that provides graphical login capabilities for the X Window System.    │
 │                                                                                                       │
 │ Only one display manager can manage a given X server, but multiple display manager packages are       │
 │ installed. Please select which display manager should run by default.                                 │
 │                                                                                                       │
 │ Multiple display managers can run simultaneously if they are configured to manage different servers;  │
 │ to achieve this, configure the display managers accordingly, edit each of their init scripts in       │
 │ /etc/init.d, and disable the check for a default display manager.                                     │
 │                                                                                                       │
 │ Default display manager:


参考:

1 安装 WSL | Microsoft Learn

2 重要参考: 

Windows10/11 三步安装wsl2 Ubuntu20.04(任意盘) - 知乎 (zhihu.com)3

3 Ubuntu安装图形界面:

WSL2+Ubuntu18.04+gnome图形界面+docker搭建开发环境_ElasticForce的博客-CSDN博客_wsl安装gnome图形界面

4 (1条消息) win10 WSL2 Ubuntu图像化界面安装和配置_到瑞米法扫拉西的博客-CSDN博客_wsl图像 

5 Install Ubuntu on WSL2 and get started with graphical applications | Ubuntu

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/129396.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

程序员出身备考PMP,如何避开备考误区顺利拿到3A成绩?

还在犹豫2023年如何才能提升自己的职场竞争力吗&#xff1f;PMP项目管理证书值得大家了解。掌握这些备考技巧&#xff0c;让你的PMP学习少走弯路。有计划明年3月参考PMP的小伙伴注意啦&#xff01; 今天小赛邀请了一位程序员出身的小伙伴&#xff0c;一起来看看他是如何在忙碌…

linux下如何使用configure/make/make install命令编译安装卸载程序

源码的安装一般由3个步骤组成&#xff1a;配置&#xff08;configure&#xff09;、编译&#xff08;make&#xff09;、安装&#xff08;make install&#xff09;。安装成功的源码就是所谓的可执行文件&#xff0c;在你不需要的时候&#xff0c;也是可以删除/卸载&#xff08…

leetcode1456. 定长子串中元音的最大数目

给你字符串 s 和整数 k 。 请返回字符串 s 中长度为 k 的单个子字符串中可能包含的最大元音字母数。 英文中的 元音字母 为&#xff08;a, e, i, o, u&#xff09;。 示例 1&#xff1a; 输入&#xff1a;s “abciiidef”, k 3 输出&#xff1a;3 解释&#xff1a;子字符串…

Spring的7种事务传播方式

Spring事务传播行为体现在某个service方法调用另一个service方法&#xff0c;事务该如何进行下去。 Spring支持7中事务传播方式&#xff0c;在Propagation类中可以看到&#xff0c;如下&#xff1a; REQUIRED(0), SUPPORTS(1), MANDATORY(2), REQUIRES_NEW(3), NOT_SUPPORTED…

【操作系统】进程的属性及状态(三态五态七态)

文章目录进程的概念进程的属性1、结构性2、共享性3、动态性4、独立性5、制约性6、并发性进程状态1、三态模型2、五态模型3、七态模型进程的概念 程进程是一个可并发执行的具有独立功能的程序关于某个数据集合的一次执行过程&#xff0c;也是操作系统进行资源分配和保护的基本…

Java中内部类的讲解(Java系列8)

目录 前言&#xff1a; 1.内部类 1.1内部类的概念 1.2内部类的分类 1.2.1实例内部类 1.2.2静态内部类 1.2.3局部内部类 1.2.4匿名内部类 结束语&#xff1a; 前言&#xff1a; 这次小编主要与大家分享一下什么是内部类&#xff0c;那么接下来就和小编一起来见识一下内…

aloam学习笔记(一)

开始学习aloam框架&#xff0c;记录一下最开始运行aloam中出现的各种问题以及解决方式。 1.aloam地址 GitHub - HKUST-Aerial-Robotics/A-LOAM: Advanced implementation of LOAM 2.安装aloam的一些依赖 主要是两个ceres和pcl库 2.1安装ceres ceres官方地址&#xff1a;I…

宝马335i手动挡和M3手动挡的对比

感受篇 *动力 两车的动力都堪称强悍&#xff0c;但发力感受差异非常大。335具备典型的涡轮车特征&#xff0c;动力来的比较突兀&#xff0c; 低速跟车时油门很难控制&#xff0c;给小了车走得慢&#xff0c;给大了就往前窜。转速拉到3000转以后335的动力刺激度非常高&#xff…

房产管理系统安全可靠性分析

数图互通房产管理 高校房产管理系统是基于公司自主研发FMCenter平台开发的应用系统。 一、系统安全性分析&#xff1a; 1.支持SSL传输协议&#xff0c;可以实现链路层的加密传输。 2.提供基于角色的授权体系&#xff0c;角色可自…

辞旧迎新,社科院与杜兰大学金融管理硕士项目引领你在金融的世界遇到更好的自己

不知不觉中2022年剩下最后的2天了&#xff0c;这一年中一半的时间是核酸&#xff0c;另一半是辛酸。当我们的理想快被生活磨灭的时候&#xff0c;记得把生活调成自己喜欢的频率&#xff0c;尽力而为。告别过去才能跟未来更好的相逢&#xff0c;新的一年我们的在职读研从社科院杜…

webdriver的尝试:三 【移动端的使用appium-配置】

文章目录appium安装appium与inspectorinspector配置配置信息获取inspector启动遇到的错误记录启动appium Selenium webdriver到移动端使用的是appium。 官方网站 介绍是&#xff1a;appium是一个app的自动化测试框架&#xff0c;使用webdriver协议。且可用于&#xff0c;原生…

【机器学习实战】二、随机森林算法预测出租车车费案例

随机森林算法预测出租车车费案例 一、导入第三方库 import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns import sklearn二、加载数据集 train pd.read_csv(train.csv,nrows1000000) # 加载前1000000条数据 test pd.read_csv(…

Java-抽象类与接口

前言 温故而知新 最近从头来看当初学过的语法知识点, 温故而知新, 发现当初还有许多未掌握的知识, 所以我建议大家也要多温故, 可能当初有好多知识点是没掌握到的. 这篇博客的重点就是介绍抽象类与接口, 并阐述他们的区别. 一. 抽象类 1. 概念 在面向对象的概念中, 所有的…

git基础

代码托管平台&#xff1a;git.acwing.com 一、git基本概念 工作区&#xff1a;仓库的目录。工作区是独立于各个分支的。 暂存区&#xff1a;数据暂时存放的区域&#xff0c;类似于工作区写入版本库前的缓存区。暂存区是独立于各个分支的。 版本库&#xff1a;存放所有已经提交…

黑马Hive+Spark离线数仓工业项目--数仓主题应用层ST层构建(2)

服务域&#xff1a;回访主题分析 目标&#xff1a;掌握回访主题的需求分析 路径 - step1&#xff1a;需求 - step2&#xff1a;分析 实施 需求&#xff1a;统计不同维度下的回访主题指标的结果 分析 - 指标 - 回访工程师数量、回访人员数量、回访人员最大数量、回访人员最…

C++学习 Day.8 (重载运算符和类型转换运算符)ps:一大波参考博客来袭~~

this指针 详解请点这里 复制构造函数详解 点这里和这里 指针的指针的地址&#xff0c;指针自身的地址&#xff0c;指针指向的地址 点这里 实例化解释很好 引用和指针的区别 点这里和这里 引用详解&#xff1a;C&#xff1a;引用的简单理解 - Tom文星 - 博客园 (cnblogs.co…

SMC详解

SMC全称:Secure Monitor Call 目的&#xff1a;进入到EL3异常等级 应用场景&#xff1a;大于等于EL1异常等级下使用&#xff08;EL0下不能使用&#xff09; 官方介绍以及使用方式如下&#xff1a; 主要配置&#xff1a; (1) SCR_EL3.SMD&#xff1a; (2) HCR_EL2.TSC 主要功…

ArcGIS基础实验操作100例--实验20按像元修改栅格值

本实验专栏来自于汤国安教授《地理信息系统基础实验操作100例》一书 实验平台&#xff1a;ArcGIS 10.6 实验数据&#xff1a;请访问实验1&#xff08;传送门&#xff09; 基础编辑篇--实验20 按像元修改栅格值 目录 一、实验背景 二、实验数据 三、实验步骤 &#xff08;1&…

SpringCloud整合Seata(AT两阶段--场景: 下单减少库存)

文章目录零&#xff1a;前置操作 --- 搭建Seata服务一&#xff1a;介绍说明二&#xff1a;添加undolog表三&#xff1a;框架整合Seata相关依赖3.1&#xff1a;引入公共SEATA POM依赖3.2&#xff1a;业务服务引入SEATA公共组件依赖3.3&#xff1a;yml文件配置Seata客户端和注册信…

[C++]模板与STL简介

&#x1f941;作者&#xff1a; 华丞臧 &#x1f4d5;​​​​专栏&#xff1a;【C】 各位读者老爷如果觉得博主写的不错&#xff0c;请诸位多多支持(点赞收藏关注)。如果有错误的地方&#xff0c;欢迎在评论区指出。 推荐一款刷题网站 &#x1f449;LeetCode 文章目录模板初阶…