我之前写过一篇《通过 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
评论