我之前写过一篇《通过 WSL2 运行 GUI 程序》的 Blog,感兴趣的朋友可以关注我的主页。今天我试了一下用在 WSL2 中安装 VSCode,挺麻烦的就想着留个笔记。
步骤
更新 wsl2
进入 ubuntu,检查 snap
$ snap versionsnap 2.58+20.04snapd unavailableseries 16Windows Subsystem for Linux -kernel 5.15.79.1-microsoft-standard-WSL2 (amd64)
复制代码
通过 snap 安装 vscode
$ sudo snap install --classic codeerror: cannot communicate with server: Post http://localhost/v2/snaps/code: dial unix /run/snapd.socket: connect: no such file or directory
复制代码
此时,依旧存在报错,据网上资料,win10 的 WSL2 才会有,而 Win11 的 WSL2 是正常的
$ systemctl status snapd.serviceSystem has not been booted with systemd as init system (PID 1). Can't operate.Failed to connect to bus: Host is down
复制代码
可以看出 systemd 没有通过 sudo vi /etc/wsl.conf 添加
退出 wsl,重启 wsl
检查 systemd 是否启动了
$ sudo systemctl status[sudo] password for ubuntu:● MSI State: degraded Jobs: 0 queuedFailed: 2 units Since: Tue 2023-02-21 10:56:11 CST; 1min 17s agoCGroup: / ├─user.slice │ └─user-1000.slice │ ├─user@1000.service … │ │ ├─pulseaudio.service │ │ │ └─1457 /usr/bin/pulseaudio --daemonize=no --log-target=journal │ │ ├─init.scope │ │ │ ├─1450 /lib/systemd/systemd --user │ │ │ └─1451 (sd-pam) │ │ └─dbus.service │ │ └─1481 /usr/bin/dbus-daemon --session --address=systemd: --nofork --nopidfile --systemd-activation -> │ └─session-c3.scope │ ├─1317 /bin/login -f │ └─1458 -bash ├─init.scope │ └─1 /sbin/init └─system.slice ├─systemd-networkd.service │ └─88 /lib/systemd/systemd-networkd ├─systemd-udevd.service │ └─77 /lib/systemd/systemd-udevd ├─cron.service │ └─405 /usr/sbin/cron -f ├─polkit.service │ └─279 /usr/lib/policykit-1/polkitd --no-debug ├─networkd-dispatcher.service
复制代码
检查 snapd 是否正常
$ sudo systemctl status snapd.service● snapd.service - Snap Daemon Loaded: loaded (/lib/systemd/system/snapd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2023-02-21 10:56:20 CST; 1min 23s agoTriggeredBy: ● snapd.socketMain PID: 1244 (snapd) Tasks: 29 (limit: 19054) Memory: 37.8M CGroup: /system.slice/snapd.service └─1244 /usr/lib/snapd/snapd...
复制代码
安装 vscode
$ sudo snap install code --classic
复制代码
安装完成后,可能会出现 code 触发的是 windows 本机的 code
$ which -a code # 查看code全部所属/mnt/c/Users/[User Name]/AppData/Local/Programs/Microsoft VS Code/bin/code/snap/bin/code
复制代码
调用/snap/bin/code就可以正常调用 wsl2 中的 code
评论