WSL及UBUNTU及xfce4安装

如何拥有Linux服务器?

wsl 是适用于 Linux 的 Windows 子系统(Windows Subsystem for Linux)。是一个为在Windows 10和Windows Server 2019上能够原生运行Linux二进制可执行文件(ELF格式)的兼容层,可让开发人员按原样运行 GNU/Linux 环境,包括大多数命令行工具、实用工具和应用程序,且不会产生传统虚拟机或双启动设置开销

简单来说,以前想在Windows中使用linux,需要安装vmware虚拟机,现在则不比这么麻烦了,直接安装linux子系统。

WSL1与WSL2

WSL 2 是WSL 1的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及支持完全的系统调用兼容性

相对于WSL采用API转换的方式, WSL 2 则完全不同,win10 开始内置了一个轻量级虚拟机,经过不断的优化,这个虚拟机实现了与 windows 的高度集成,实现了虚拟机的高性能运行,WSL2 便是运行在虚拟机上的一个完整的 linux 内核,比如Docker、cgroup、iptables、GPU、图形界面这些功能都能正常工作。。因此 WSL 2 给了在 windows 更接近原生linux的体验,同时WSL 2 的开启速度有了非常明显的提升,几乎不需要再等待。

这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。

单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 使用全新的体系结构,该体系结构受益于运行真正的 Linux 内核。

UBUNTU是什么

Ubuntu是Linux的发行版。在Linux术语中,发行版是以Linux内核为基础的操作系统版本。

WSL安装

开启Windows的WSL支持:

控制面板——程序——启用或关闭Windows功能——适用于Linux的......和虚拟机平台打勾——重启打开终端——输入 wsl --install 自动安装最新的Ubuntu发行版,也可以进入WindowsStore下载
下载完成后,在开始界面会出现Ubuntu图标

打开Ubuntu报错:WslRegisterDistribution failed with error: 0x800701bc

输入用户名和密码,注意,密码输入时屏幕上不会显示,输完了回车就可以

查看wsl版本:终端输入

wsl --list --verbose

查看ubuntu版本:powershell输入wsl进入,输入

 lsb_release -a

WSL迁移

为防止C盘爆满,将wsl迁移

在powershell输入:

1) 停止正在运行的WSL

wsl --shutdown

2)将需要迁移的Linux,进行导出

wsl --export Ubuntu D:/export.tar

3)导出完成之后,将原有的Linux卸载

wsl --注销 Ubuntu

4) 然后将导出的文件放到需要保存的地方,进行导入即可

wsl --import Ubuntu D:\export\ D:\export.tar --version 2

查看用户是否为su:

sudo -l -U 用户名

用户 czt 可以在 LAPTOP-4SU4O3DA 上运行以下命令:
(全部:全部)全部

表示为sudo

切换用户:

su 用户名

Ubuntu换源

查看Ubuntu当前镜像源,在wsl中输入

cat /etc/apt/sources.list

编辑源文件配置文件,输入:

sudo vim /etc/apt/source.list

进去之后一直按d,d是vim里面删除一行的快捷键。删除干净了之后按i进入编辑模式。
复制其他源,鼠标右键单击粘贴,不想要的可以#注释掉

以下是22.04jammy清华源:

# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
 
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse


粘贴之后按Esc键退回命令模式,输入:wq,回车保存并退出

更新软件包列表,输入

sudo apt-get update

GNOME和XFCE是什么

是桌面环境,让操作更直观。

linux——核
ubuntu——操作系统
gnome、xfce——桌面

安装GNOME

WSL 不支持 systemd 而 Gnome 桌面又是基于 systemd,所以先解决这个问题。

sudo apt update
sudo apt install git
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
cd ubuntu-wsl2-systemd-script/
bash ubuntu-wsl2-systemd-script.sh

这个脚本执行完了会专门一句话说明执行成功的,中间弹了什么东西你别去管他。
安装完systemd之后,退回windows终端(直接叉掉这个终端就行),务必输入 wsl --shutdown

彻底关闭wsl运行的ubuntu,不然它不算完全关闭。
先确认你wsl版本为wsl2

查看版本 wsl -l -v
然后再在windows终端键入 wsl

重启ubuntu终端。输入systemctl
确认systemctl能用,出来一堆东西就行,失败的话会是

System has not been booted with systemd as init system (PID 1). Can't operate.

确认无误时候,安装gnome桌面

sudo apt update
sudo apt install -y ubuntu-desktop

ps 最终并没有成功,远程桌面连接不上,所以改成了Xfce4.

输入 sudo apt update总是报错:

Get:5 https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease [18.1 kB]
Err:5 https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease
  The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A
Reading package lists... Done
W: GPG error: https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY EA8CACC073C3DB2A
E: The repository 'https://launchpad.proxy.ustclug.org/linuxuprising/shutter/ubuntu focal InRelease' is not signed.
N: Updating from such a repository can't be done securely, and is therefore disabled by default.
N: See apt-secure(8) manpage for repository creation and user configuration details.

ERR源不能用,换中科大也不行,我直接到文件夹里把martinx-ubuntu-xrdp-hwe-18_04-jammy.list全注释掉了

报错:98 packages can be upgraded. Run 'apt list --upgradable' to see them.

始终有包无法更新,可能是默认源连接不上,需要换源。

WSL主要更新升级命令介绍

1)、apt-get update
从服务器获取全部可用的、最新的软件包列表,并缓存到本地电脑。

2)、apt-get upgrade
这个命令,会把本地已安装的软件,与刚下载的软件列表里对应软件进行对比,如果发现已安装的软件版本太低,就会提示你更新。upgrade 不会删除在列表中已经没有的软件包,也不会安装有依赖需求但尚未安装的软件包。

3)、apt-get full-upgrade
根据列表信息,对需要升级的软件包进行完整安装。也就是先删除软件,然后完整地重新安装整个软件。所以要注意,这个功能是会删除软件的,所以执行此命令之前最好备份一下。

4)、apt-get dist-upgrade
dist-upgrade 可能会为了解决软件包冲突而删除一些已安装的软件包,也可能会为了解决软件包依赖问题安装新的软件包。

5)、apt list --upgradable
根据列表对比信息,看看有哪些可更新的软件,如果没有则显示为空。

6)、apt-get autoremove
一般来说,更新完成之后会有一些不需要的旧组件需要清除。此时使用apt autoremove即可完成清理。

7)、(sudo) apt-get autoclean
清理缓存

报错:E: Unable to correct problems, you have held broken packages.

可能是源的问题。先执行 lsb_release -a 查看是什么类型的源,比如focal、jammy等,然后切换对应的源。也不是一定要对应,多试试吧。

报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.

Ubantu 报错:System has not been booted with systemd as init system (PID 1). Can‘t operate.-CSDN博客

报错:远程连接失败,connection problem,giving up

ubuntu远程桌面实现(包括解决connection problem,giving up问题) - 知乎 (zhihu.com)

连接黑屏

完美方案——解决XRDP连接黑屏,以及桌面优化! - 知乎 (zhihu.com)

Xfce界面的开启

powershell(管理员模式)输入wsl

用远程界面连接,默认(localhost:3389),输入用户名和密码进入

主要参考:

WSL2 + Docker + xfce4安装及使用_wsl2 ubuntu 22.04 安装xfce4-CSDN博客

WSL2使用xrdp实现图形桌面 - 知乎 (zhihu.com)

[windows]给WSL安装一个桌面gnome版本_wsl gnome-CSDN博客

wsl安装ubuntu并设置gnome图形界面详细步骤(win11+ubuntu18)_wslubuntu图形界面-CSDN博客

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Docker 的数据管理 端口映射 容器互联 镜像创建

一 Docker 的数据管理 1 管理 Docker 容器中数据主要有两种方式: 数据卷(Data Volumes) 数据卷容器(DataVolumes Containers)。 1.1 数据卷 数据卷是一个供容器使用的特殊目录,位于容器中。可将宿主机…

数据污染对大型语言模型的潜在影响

大型语言模型(LLMs)中存在的数据污染是一个重要问题,可能会影响它们在各种任务中的表现。这指的是LLMs的训练数据中包含了来自下游任务的测试数据。解决数据污染问题至关重要,因为它可能导致结果偏倚,并影响LLMs在其他…

linux 中 make 和 gmake的关系

1. 关系 gmake特指GNU make。 make是指系统默认的make实现; 在大多数Linux发行版中,make就是GNU make,但是在其他unix中,gmake可以指代make的某些其他实现,例如BSD make或各种商业unix的make实现。 gmake是GNU Make的缩写。 Linux…

【基础C-递归的易错思路】

目录 1. 分析2. 代码3. 结果: 1. 分析 现在要写一个小程序,实现输入整型:4268,输出字符:‘4’,‘2’,‘6’,‘8’,思路很简单,就是进行整数的除10,结果对10求模就行,但是得到的值是逆序排列&…

Vue 组件分类、局部注册和全局注册

文章目录 背景知识组件分类安装 vue-cli示例设置组件局部注册设置组件全局注册 背景知识 开发 Vue 的两种方式: 核心包传统开发模式:基于 html / css / js 文件,直接引入核心包,开发 Vue。工程化开发模式:基于构建工…

[c++]菱形继承解析

菱形继承 大概示意图: 菱形继承不一定只是标准的菱形,只要形似菱形的都可以叫菱形继承。 (以下说明都是默认公有继承,public和protected成员情况下) 菱形继承会造成数据的冗余和二义性: 冗余:一个Assitant对象里面有…

[C++基础学习]----03-程序流程结构之循环结构详解

前言 在C程序中,循环结构在用于重复执行一段代码块,直到满足某个条件为止。循环结构有多种形式,包括while循环、do-while循环和for循环。 正文 01-循环结构简介 1、while循环语句: while循环在每次循环开始前检查条件是否为真&a…

数据库锁介绍

数据库锁是一种同步机制,用于控制多个事务对共享资源的访问,防止并发操作造成的数据不一致。在数据库中,锁通常分为两种基本类型:排他锁(Exclusive Locks)和共享锁(Shared Locks)。排…

大型语言模型高效推理综述

论文地址:2404.14294.pdf (arxiv.org) 大型语言模型(LLMs)由于在各种任务中的卓越表现而受到广泛关注。然而,LLM推理的大量计算和内存需求给资源受限的部署场景带来了挑战。该领域的努力已经朝着开发旨在提高LLM推理效率的技术方…

【C++】namespace、class、struct的区别

文章目录 命名空间定义命名空间using指令不连续的命名空间嵌套的命名空间多文件编程时的命名空间命名空间只能全局范围内定义命名空间中的函数 可以在“命名空间”外 定义无名命名空间,意味着命名空间中的标识符只能在本文件内访问,相当于给这个标识符加上了static,使得其可…

【Hadoop】-Apache Hive使用语法与概念原理[15]

一、数据库操作 创建数据库 create database if not exists myhive; 使用数据库 use myhive; 查看数据库详细信息 desc database myhive; 数据库本质上就是在HDFS之上的文件夹。 默认数据库的存放路径是HDFS的:/user/hive/warehouse内 创建数据库并指定hdfs…

redis7 for windows的安装教程

本篇博客主要介绍redis7的windows版本下的安装教程 1.redis介绍 Redis(Remote Dictionary Server)是一个开源的,基于内存的数据结构存储系统,可用作数据库、缓存和消息代理。它支持多种数据结构,如字符串、哈希表、列…

PCIe debug设计:锁存ltssm 状态机

图1:debug设计添加位置 图2:ltssm状态切换图 LTSSM state: LTSSM state encoding: • 00h: detect.quiet • 01h: detect.active • 02h: polling.active • 03h: polling.compliance • 04h: polling.configuration • 05h: config.linkwidthstart • 0…

鸿蒙内核源码分析(时钟任务篇)

时钟概念 时间是非常重要的概念,我们整个学生阶段有个东西很重要,就是校园铃声. 它控制着上课,下课,吃饭,睡觉的节奏.没有它学校的管理就乱套了,老师拖课想拖多久就多久,那可不行,下课铃声一响就是在告诉老师时间到了,该停止了让学生HAPPY去了. 操作系统也一样&…

linux进程通信 ipc

进程通信 管道 父子进程创建命令 实现ls | wc -l 左边写端 ,右边读端 父进程写 子进程读 int fd[2]; pipe(fd); fd[1] 是写 fd[0]是读 读之前关闭写 写之前关闭读 兄弟进程创建命令 无法进行管道通信可能是父进程也把握了读端和写端 可能会流入到父进程…

抓包理解协议

用的Wireshark 抓包 1.抓包网卡选择 - WLAN 无线网卡,其他是本地虚拟机的网卡 这里分别是开始捕获、停止捕获、重新捕获、网卡选择,下面是可以过滤选择 过滤tcp包 3次握手: source是源地址, destination是目标地址,in…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-5

前言: 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM(MX6U)裸机篇”视频的学习笔记,在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

嵌入式学习58-ARM7(字符设备驱动框架led)

知识零碎: kernel 内核 printk 内核打印 cat /proc/devices insmod …

VMWARE安装xpsp3时无法从光盘启动安装显示dhcp转圈圈

VMWARE安装xpsp3时无法从光盘启动安装显示dhcp转圈圈。之前都安装过无数次了。这次被卡住了。 原来是这里原因 不成功是因为启动时连接没打钩。默认是打钩的。不知道怎么的我把勾去掉了。我还跑去设置bios。都没有用。

开放地址法解决哈希冲突

1.基本思想: 有冲突时就去寻找下一个空的散列地址,只要散列表足够大,空的散列地址总能找到,并将元素存入. 2.开放地址法的常用方法: (1) 线性探测法: Hi(Hash(key)di)%m (1<i<m),其中:m为哈希表长度,di为增量序列1,2,……m-1,且dii;其实就是一旦有冲突,就找下一个空地…