第一大点和碎碎念还挺长的,大家瞄两眼酌情略过吧正文从第二大点开始
该文章是我总结了很多不同文章的方法写出来供大家参考也想帮助遇到问题的人。然后我遇到问题的时候光想着怎么解决了没有截图,所以借用了很多别的文章的截图,如果有冒犯请联系我删除;不过我把所有用到的别人的方法都把原文链接贴出来了,还请大家多多包涵第一次写文章的我。
碎碎念
上周发现WSL2的发行版系统竟然还可以装图形化界面,想着玩一玩也想给自己的也整一个,不过不整不知道一整全是坑。。。
国内搜出来的图形化安装教程基本上都是安装xfce4居多,偶尔有几篇gnome的。这俩我都装过,xfce4是依赖最少安装最简单可以不依靠远程软件直接启动的子系统桌面(但是会显得很乱);gnome是最难装的,因为坑是真的多,也是真的难解决,不如说网上搜出来的方法都解决不了我的问题,后来有一次我成功启动了gnome桌面,但是我发现界面比较丑和我在VMware的完整Ubuntu不一样,又有点卡卡的掉帧便将其注销掉了,现在想装回来又发现怎么样也进不去桌面了,呜呜呜。下面贴一张当时成功安装并进入gnome桌面的截图。
一、准备工作:安装WSL2和发行版本
1、安装WSL2
这里我就不过多赘述了,网上有很多教程,我在这里贴一个比较完善的站内教程,囊括了:在哪里安装发行版本,你在Microsoft store里装不上也有网页链接给你下载,还有从C盘导入导出的操作非常详细。
2、查看你的系统是否支持systemd
** **如果你的wsl版本已经是wsl2且发行版是Ubuntu22.04的话我建议你先进入子系统的终端,查看/etc/wsl.conf文件是否有如下内容(如果不为true改成true)
# 进入子系统终端后
sudo vim /etc/wsl.conf
# 看看打开后有没有这两行内容
[boot]
systemd=true
如果你打开wsl.conf能看到有这两行,那么你的发行版已经有systemd了就不用再去github下载各种开启systemd的脚本了。如果你没有这两行代码,那么我在这引用站内大佬Franklin的文章简单讲讲怎么安装systemd:
# 首先克隆一个GitHub的项目
git clone https://github.com/DamionGans/ubuntu-wsl2-systemd-script.git
如果你的Ubuntu版本是20.04以上还要修改刚克隆下来的一个文件
# 进入刚刚克隆下来的文件
cd ubuntu-wsl2-systemd-script/
# 打开enter-systemd-namespace文件
sudo vim enter-systemd-namespace
如下图所示修改这两个参数,将两个"-a",修改为"-m -p"(注意别把引号也写进入了)![](https://img-blog.csdnimg.cn/direct/7227a058b3eb4a4d9676091c603c4f27.png)
修改完后
最后执行脚本
bash ubuntu-wsl2-systemd-script.sh
执行完毕后
# 退出子系统终端
exit
# 此时打开一个新的Windows终端使用wsl -l -v查看子系统是否还在运行,若在运行则用下面的命令关闭它
wsl -t [你的子系统名称,可通过wsl -l查看]
# 最后启动子系统
wsl
# 使用systemctl命令,若成功安装systemd则会有一长串东西
systemctl
原文地址参考:【WSL】[01] windows subsytem linux 安装-作者:Franklin
3、(非必要,仅提供参考)子系统使用Windows的网络代理,我跟着一个教程设置好后感觉只能在终端里ping通google.com,甚至有时候在终端使用git拉取远程仓库速度都很慢,不过把链接贴出来给大家一个参考吧。是一个知乎的问题,下面的解决方案有短有长,大伙根据需求自取。如何让Windows的代理作用于wsl2?
二、安装KUbuntu
2.1、避免踩坑的前置条件
这个前置条件无论是安装KDE还是gnome都需要做,很多人可能会跟着网上现有的教程先安装了apt-fast提升下载和安装速度,然后再使用sudo apt-fast install ubuntu-desktop gnome或者是sudo apt install kubuntu-desktop安装桌面**而漏掉这两个命令**:
apt purge -y acpid acpi-support modemmanager
apt-mark hold acpid acpi-support modemmanager
2.1.1、Setting up acpi-support (0.144) ...Failed to restart acpid.service: Transport endpoint is not connectedSee system logs and 'systemctl status acpid.service' for details.
Failed to get properties: Transport endpoint is not connected (设成标题尽量让别人搜到)
如果没有先使用上面两个命令,直接开始 安装桌面,会在安装桌面进度到74%或百分之七十多到八十时遇到这样的情况:
Setting up acpi-support (0.144) ...
Failed to restart acpid.service: Transport endpoint is not connected
See system logs and 'systemctl status acpid.service' for details.
Failed to get properties: Transport endpoint is not connected
解决方法就是ctrl+z暂停安装进程输入上面两条指令,或者在安装桌面前使用上面那两条指令。
解决方法出处:Unable to install certain systemd reliant packages/start services #9350
2.2、安装KDE桌面
完整的KDE桌面和gnome桌面的包都很大,足足有两三个G,普通的apt下载很慢,如果你愿意可以先安装apt-fast再去安装桌面速度会提升很多,上面提到的一篇文章也有写到如何安装apt-fast大家感兴趣可以自行查看,也可以自己搜教程【WSL】[01] windows subsytem linux 安装
我这里用apt-fast安装KDE桌面如下所示
# 可以安装kubuntu-desktop或plasma-desktop,区别是前者更完整体积更大后者提供基本的桌面组件体积更小
sudo apt-fast install kubuntu-desktop
# 如果到后面的步骤打开桌面时就只看到壁纸,任务栏和别的东西看不见应该是分辨率设置不正确,把辨率改小就好了
2.2.1、安装桌面遇到的问题Initializing mlocate database; this may take some time
此时如果你的进度到了79%左右,你会发现你又卡着了,滚动的安装日志信息最后一行是这样的
Initializing mlocate database; this may take some time.....
2.2.2、解决办法
** 这个时候不要急,我们使用键盘快捷键"CTRL"+"Z",暂停桌面的安装(不用kill掉),你会看到进度条还在下方,但是此时可以输入命令了,输入如下命令:**
sudo vim /etc/updatedb.conf
打开后在 "**PRUNEPATHS:**" 变量后添加 "**/mnt**",如图所示
参考文章地址:WSL2安装locate命令一直显示Initializing mlocate database; this may take some time,进度一直卡在60%
会这样的原因大概是,安装的时候WSL2的plocate会使用updatedb.conf去遍历文件,而且子系统是可以访问Windows文件的,那这样一来遍历的文件可就多了,我在github还是欧美贴吧上看到有人说如果你的硬盘有2t得遍历6天才能遍历完(哈人)。
2.2.3、按照上述步骤修改完updatedb.conf,则使用命令恢复安装
# 先使用jobs查看
jobs
# 如果只输出了一个暂停的进程也就是“sudo kubuntu-desktop”则
fg
#如果有多个则
fg [安装桌面的那条命令前面的数字]
如果当前没有滚动的安装信息是正常的,因为子系统自己本身也有文件要遍历,耐心等待即可,后面便会输出信息来
2.2.4、安装完毕
安装完之后先别急着启动桌面,接下来还有东西需要安装
三、启动桌面环境
这一步骤我也是参考别人的博客的,基本上一样,大佬们轻喷
原博客:Windows 11 WSL2跑Linux桌面環境與圖形程式的方法,使用WSLg XWayland
3.1、安装xorg、Xephyr和GIMP
# 安装xorg
sudo apt-get install xorg
# 安装Xehpyr
sudo apt-get install xserver-xephyr
# 安装GIMP
sudo apt install gimp
3.2、设置环境变量
echo "export XDG_SESSION_TYPE=x11" >> ~/.profile
echo "export GDK_PLATFORM=x11" >> ~/.profile
echo "export GDK_BACKEND=x11" >> ~/.profile
echo "export QT_QPA_PLATFORM=xcb" >> ~/.profile
echo "export WAYLAND_DISPLAY=" >> ~/.profile
source ~/.profile
原作的原话“儲存環境變數到
~/.profile
,告訴程式全數使用X渲染。如果你不這樣做,在X伺服器視窗開的Linux程式可能會跑到視窗外面。”
3.4、启动X Server
# 设置窗口可以改变大小,至于1920x1080是我笔记本屏幕的大小,大家可以根据需求自行修改
Xephyr -br -ac -noreset -resizeable -screen 1920x1080 :1 &
上面这条命令最后的“&”是指异步运行,这里需要异步运行后面还有命令需要输入
3.5、启动桌面
export DISPLAY=:1
dbus-launch --exit-with-session startplasma-x11 &
哎呀真激动啊,折腾了一周多了终于整了个界面好看的子系统桌面了(卡也是真的卡不过他帅啊!)
终于写完 了,看了下目录感觉也有点乱[捂脸],还请大家多多包涵,不过如果有帮到你就点个赞吧。
版权归原作者 B4ikal 所有, 如有侵权,请联系我们删除。