2025——win11从零配置wsl2(ubuntu)+idea(wslg)
前言
微软推出的WSL(Windows Subsystem for Linux)子系统已经日趋成熟,现已成为一个值得学习和使用的工具。本文将指导您如何安装子系统,并使其能够运行idea程序。
声明:本人只是个学生小白
本文适用jetbrains系列工具
一、安装wsl2+Ubuntu
1.wsl2的安装
这个过程网络上提供了大量教程,完全可以根据他们的教程走,比如本人就是按照
【通过WSL2安装Ubuntu24.04系统及图形化界面】_wsl ubuntu图形界面-CSDN博客
的教程完成安装。
1.确保电脑支持虚拟化技术,并在BIOS设置中已启用虚拟化。
2.在控制面板-程序-程序和功能中勾选必要的功能,确定后重启。
3.通过在powershell(终端)或者命令提示符(cmd)执行以下命令来安装wsl
wsl --install
wsl --update
wsl --set-default-version 2
安装完成后,通过输入wsl -v
命令可以查看WSL的版本信息。
2.Ubuntu的安装
安装Ubuntu
这里就直接安装默认版本了,输入
wsl --install Ubuntu
如果提示无法从“https://raw.githubusercontent.com/microsoft/WSL/master/distributions/DistributionInfo.json”中提取列表分发。
可按照以下链接解决
解决raw.githubusercontent.com无法访问的问题-CSDN博客
若下载速度异常缓慢,您可以尝试打开微软应用商店的‘更新和下载’页面,取消Ubuntu的下载任务,此时终端将自动转向从Web进行下载。
安装结束后会让你输入 用户名和密码
3.迁移子系统
将WSL子系统迁移到其他分区
请在D盘的根目录下新建一个名为‘wsl’的文件夹
在终端执行以下命令,将Ubuntu迁移至D盘wsl中
wsl --export Ubuntu D:\wsl\Ubuntu.tar
wsl --unregister Ubuntu
wsl --import Ubuntu D:\wsl D:\wsl\Ubuntu.tar
完成后,您可以通过开始菜单或直接在终端中输入命令来启动Ubuntu。
3.1取消默认root用户设置
请在命令提示符(cmd)中执行以下命令。
注意:这些命令仅在命令提示符中有效。
Ubuntu config --default-user 你的用户名
3.2设置root用户
在Ubuntu终端中,首先输入sudo passwd root
来设置root用户的密码,随后执行su root
命令即可切换到root用户模式。
要切换回普通用户模式,可以执行su user
命令。
二、设置Ubuntu系统
1.换源
执行su root
切换到root用户
在Ubuntu中执行
sudo nano /etc/apt/sources.list.d/tuna.sources
复制以下内容,右键窗口粘贴
Types: deb
URIs:https://mirrors.aliyun.com/ubuntu/
Suites: noble noble-updates noble-backports
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
Types: deb
URIs:https://mirrors.aliyun.com/ubuntu/
Suites: noble-security
Components: main universe restricted multiverse
Signed-By: /usr/share/keyrings/ubuntu-archive-keyring.gpg
ctrl+o
保存 ctrl+x
退出
执行下列指令更新
sudo apt update
sudo apt upgrade
2.(可选)配置中文环境
安装中文语言包
sudo apt install language-pack-zh-hans
配置中文语言
sudo dpkg-reconfigure locales
Windows键盘==翻页键(Page Down)部分笔记本(pg dn)进行往下翻滚,直到看见zh_CN.UTF-8 UTF-8 空格键(Space)选中,Tab键跳转到OK 后按下回车。
选中en_us 和 zh_CN
在终端执行 wsl --shutdown
关闭Ubuntu
再次打开会发现变成了中文环境
3.(可选)删除snap相关
Ubuntu的snap包体验虽不尽如人意,但在某些情况下又不得不使用,经过权衡,我还是决定将其卸载。
注意:安装android-studio不要删
执行
snap remove --purge firefox
snap remove --purge snap-store
snap remove --purge gnome-42-2204
snap remove --purge gtk-common-themes
snap remove --purge snapd-desktop-integration
snap remove --purge bare
snap remove --purge firmware-updater
snap remove --purge canonical-livepatch
snap remove --purge core22
snap remove --purge snapd
sudo apt remove --autoremove snapd
nano /etc/apt/preferences.d/nosnap.pref
粘贴以下内容
# To prevent repository packages from triggering the installation of snap,
# this file forbids snapd from being installed by APT.
Package: snapd
Pin: release a=*
Pin-Priority: -10
ctrl+o
保存 ctrl+x
退出
接着执行
sudo apt update
rm -rf ~/snap/
sudo rm -rf /snap/
sudo rm -rf /var/cache/snapd/
sudo rm -rf /var/lib/snapd/
三、安装各类软件及集成开发环境(IDEA)
1.中文输入法
1.1解决系统中文字符显示乱码问题
使用了连接符,不是很好的方法,但是省事
sudo mkdir /usr/share/fonts/win11
sudo ln -s /mnt/c/Windows/Fonts/* /usr/share/fonts/win11
也可以缓存windows的字体文件,会出现wslg标题栏乱码等问题,但正常使用是没问题的
1.2安装中文输入法
sudo apt install fcitx dbus-x11 im-config fcitx-sunpinyin
nano ~/.profile
在末尾粘贴以下内容
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx
fcitx-autostart &>/dev/null
source ~/.profile
至此,中文输入法已成功安装。
2.安装浏览器
我选择安装 Microsoft Edge 浏览器。
直接执行以下内容
## Setup
curl https://packages.microsoft.com/keys/microsoft.asc | gpg --dearmor > microsoft.gpg
sudo install -o root -g root -m 644 microsoft.gpg /usr/share/keyrings/
sudo sh -c 'echo "deb [arch=amd64 signed-by=/usr/share/keyrings/microsoft.gpg] https://packages.microsoft.com/repos/edge stable main" > /etc/apt/sources.list.d/microsoft-edge-beta.list'
sudo rm microsoft.gpg
## Install
sudo apt update
sudo apt install microsoft-edge-beta
安装完成后,可通过在终端输入microsoft-edge
命令来启动程序。
当Windows系统处于英文输入法状态时,可使用Ctrl+空格
快捷键切换wslg中的输入法。
若上述切换操作失败,检查 1.2安装中文输入法
中profile文件是否配置正确
PS:也有方法让wsl直接调用windows的浏览器,还在研究
你也可以安装谷歌,好像比EDGE流畅不少
cd /tmp
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
sudo apt install --fix-missing ./google-chrome-stable_current_amd64.deb
输入 google-chrome
启动
3.安装IDEA
1.到官网下载linux版的IDEA 旗舰版收费,社区版免费
2.将压缩包扔到/home/user
为了方便,我把他改名为idea
执行命令解压
tar -zxvf idea.tar.gz
为了方便,文件夹改名idea
接下来配置环境变量
nano ~/.bashrc
在最下面添加
export PATH=$PATH:/home/用户名/idea/bin
重启
输入idea成功打开
如果IDEA未自动弹出激活窗口,请手动打开浏览器(如之前安装的Edge浏览器)进行激活。
可在设置中更改缩放
四、其他问题的探索发现
1.缩放问题
关于wslg缩放问题,网上查了很多,仍旧没有实质性地解决问题,似乎大家都成功实现了缩放,目前我只发现一个有用的
export GDK_SCALE=2
这条指令临时生效,缩放2倍,可以放在启动生效里,不支持小数倍缩放(1.5)
可以扔到~/.bashrc
中开机自动执行
2.gnome桌面问题——连接后黑屏
关于桌面连接问题,目前网络上主要有两种方法:XRDP和Xserve VcXsrv。我尝试使用Xserver,但始终无法将屏幕成功连接到本机;而使用XRDP时,连接后却出现黑屏现象,后来通过仔细查找资料才解决了这一问题。
我用的是gnome桌面
nano /etc/xrdp/startwm.sh
更改如下
unset DBUS_SESSION_BUS_ADDRESS # 新增
unset XDG_RUNTIME_DIR # 新增
if test -r /etc/profile; then
. /etc/profile
fi
#test -x /etc/X11/Xsession && exec /etc/X11/Xsession # 注释
#exec /bin/sh /etc/X11/Xsession # 注释
gnome-session # 新增
还有其他的if也注释掉
可惜桌面锁定50帧,尚不清楚原因
PS:破烂桌面,还是别用了。
3.全局配置问题
在C:\Users\用户名 下创建 .wslconfig的无后缀文件
目前我的内容是
[wsl2]
memory=8GB
swap=4GB
[experimental]
autoMemoryReclaim=gradual
networkingMode=mirrored # 开启镜像网络
dnsTunneling=true # 开启 DNS Tunneling
firewall=true # 开启 Windows 防火墙
autoProxy=true # 开启自动同步代理
sparseVhd=true # 开启自动释放 WSL2 虚拟硬盘空间
ps:镜像网络这个真的方便
4.硬件加速问题—MESA: error: ZINK: failed to choose pdev
除CUDA直接调用gpu加速外,其他的GUI程序似乎并不能直接用gpu,或者说,直接用gpu还不如用cpu
运行GUI程序会出现
MESA: error: ZINK: failed to choose pdev
glx: failed to create drisw screen
错误
修改为软件加速可解决
glxinfo -B
export LIBGL_ALWAYS_SOFTWARE=1
又或者你可以选择忽略警告,继续使用硬件加速
export GALLIUM_DRIVER=d3d12
你可以将上面的命令写入~/.bashrc
中以开机自运行
new
export MESA_D3D12_DEFAULT_ADAPTER_NAME=NVIDIA
在1.31日发现的新指令,也可以强制指定为独显。
5.关于WSL下的AndroidStudio
需要在配置文件里设置这个,还要给虚拟机文件夹权限
可参考
在WSL2下的Ubuntu中搭建android开发环境 - 心若向阳,次第花开 - 博客园
这个用的snap,从网上下的不知道为什么无法启动虚拟机。
安装在了user/snap/android-studio中
在user/snap/bin有他的启动文件
你可以在bashrc中添加一个
alias studio='/snap/bin/android-studio'
以使得随时输入studio来启动程序
截止2025年1月26日,该版本为考拉而非昆虫
创建新的虚拟机后需要重新授予kvm权限
sudo chown username /dev/kvm
sudo chmod 777 /dev/kvm
android-studio这东西还是在linux实机上最流畅,放在wsl里还是太勉强了,甚至不如扔在windows里,但相比之下idea就比windows顺畅多了。
五.总结
要不是舍不得windows那点玩意,何苦在这琢磨wsl,给linux上虚拟机还不习惯,但wsl终究不是完整的linux,也出现了各种问题,虽然挨个弄过去也都糊弄的差不多,但还是不如直接上真机强劲。
之前搞过双系统,每次开机都要祈祷桌面千万别崩,而且装了双系统不知道是不是心理原因,windows变的异常卡顿,尤其是应用打开速度,肉眼可见的慢了一个档次。
笔记本linux还是缺驱动,不稳定,各种毛病,比如centeros就缺少网卡驱动,还没办法手动安装,联想把固件给锁了,凸(艹皿艹 ),偏偏他给ubuntu解了固件;
之后尝试了mint,对我这个小白学生来讲mint那是相当舒服,基于ubuntu,肉桂桌面类windows,各种必备工具开箱即食,还没有Ubuntu的snap,一键换源,安装驱动,爽的一批,还自带软件商店,可以一键配置wine,比我自己瞎弄半天强多了;但是肉桂桌面开始菜单搜索栏不能使用除英文以外的语言,也不知道现在修复了没有,其他桌面用起来还是难受,非整数倍放缩还是一坨;说起来wsl也有mint,在github有这个项目
也是开箱即食,一键部署,自带了一大堆东西,用着也还行,可惜没有微软官方援助,碰到问题还是ubuntu能查到解决方法,放在mint会很奇怪的失效。
先用wsl玩玩吧,等能放下windows那些东西后,在考虑only linux 吧。
六.附录
查阅到的有用的资料
【通过WSL2安装Ubuntu24.04系统及图形化界面】_wsl ubuntu图形界面-CSDN博客
Ubuntu 22.04远程桌面xrdp打开黑屏_ubuntu xrdp 黑屏-CSDN博客
使用 WSL2 + X11 转发 - 在 Windows10 中打造 GNU/Linux 学习生产环境 - Steins;Lab
Ubuntu 24.04卸载snap服务 - rdwr - 博客园
【WSL2教程】WSL迁移到非系统盘_wsl2迁移-CSDN博客
Ubuntu设置中文系统环境 - Thenext - 博客园
在WSL2中安装IntelliJ IDEA开发工具 - 知乎
wsl2官方gui安装IDEA踩坑记录 | MonkeyWie’s Blog
Linux 以root用户登录后无法打开chrome谷歌浏览器_linux chrome打不开-CSDN博客
打造IDEA+wsl2的Java开发环境(zsh jdk maven) - 知乎