WSL及UBUNTU及xfce4安装

发布于:2024-05-02 ⋅ 阅读:(22) ⋅ 点赞:(0)

如何拥有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博客