Linux / WSL 排查指南
本文是 常见问题解答 (Q&A) 中 Linux / WSL 问题的完整排查指南,适用于在 Linux 桌面或 Windows WSLg 环境中使用 ZCode Linux 版的用户。如果遇到 AppImage 无法启动、登录后没有自动回到 ZCode、中文输入法无法使用、或 WSLg 下首个中文字符不显示等问题,可以按本文步骤逐项检查。
推荐使用方式
- 请使用普通用户启动 ZCode,不建议使用
sudo启动。 - deb 和 AppImage 建议选择一种安装方式使用,避免多个版本互相覆盖系统打开方式。
- 如果使用 AppImage,建议放在固定路径(例如
~/Applications/ZCode.AppImage),不要在登录前后移动文件。 - 在 WSLg 中使用时,建议从同一个 WSL/Linux 环境内启动 ZCode 和浏览器。
- 中文输入法建议使用系统中已经配置好的 IBus 或 Fcitx5。
AppImage 无法启动
缺少 libfuse2
部分较新的 Linux 发行版默认只安装 FUSE 3,而 AppImage 可能需要 libfuse.so.2。常见报错:
dlopen(): error loading libfuse.so.2
AppImages require FUSE to run.
Ubuntu / Debian 用户可尝试:
sudo apt update
sudo apt install libfuse2
如果当前发行版仓库不提供 libfuse2,请参考发行版官方文档安装 FUSE 2 兼容包。
点击图标无反应
如果从应用菜单点击无反应,请先从终端启动一次,查看具体错误:
~/Applications/ZCode.AppImage
建议优先使用 deb 安装版。
NVIDIA / GPU 相关启动问题
如果终端中出现 GPU 进程不可用、NVIDIA 或渲染相关错误,可以尝试用软件渲染方式启动:
~/Applications/ZCode.AppImage \
--disable-gpu \
--disable-software-rasterizer \
--use-gl=swiftshader
如果仍无法启动,可再临时加上 --no-sandbox 验证:
~/Applications/ZCode.AppImage \
--no-sandbox \
--disable-gpu \
--disable-software-rasterizer \
--use-gl=swiftshader
--no-sandbox 仅建议用于定位或临时绕过启动问题。长期使用前,请优先尝试 deb 安装版。
建议的 AppImage 放置方式
建议将 AppImage 放到固定目录:
mkdir -p ~/Applications
mv ~/Downloads/ZCode*.AppImage ~/Applications/ZCode.AppImage
chmod +x ~/Applications/ZCode.AppImage
之后从固定路径启动:
~/Applications/ZCode.AppImage
如果需要固定启动参数,可以创建一个简单的启动脚本:
cat > ~/Applications/zcode-launcher.sh << 'EOF'
#!/usr/bin/env bash
exec "$HOME/Applications/ZCode.AppImage" \
--disable-gpu \
--disable-software-rasterizer \
--use-gl=swiftshader \
"$@"
EOF
chmod +x ~/Applications/zcode-launcher.sh
之后使用:
~/Applications/zcode-launcher.sh
如果你的环境必须使用 --no-sandbox 才能启动,可以临时把它加入启动脚本。
登录后没有回到 ZCode
ZCode 登录完成后,浏览器需要把结果交回 ZCode。如果系统没有正确关联 ZCode,或者当前运行的版本和系统关联的版本不一致,就可能出现浏览器登录完成但 ZCode 没反应。
请先确认 ZCode 是普通用户启动:
id -u
如果输出是 0,说明当前是 root 用户。请关闭 ZCode 后用普通用户重新启动。
继续检查系统是否能找到 ZCode 的打开方式:
xdg-mime query default x-scheme-handler/zcode
正常情况下应能看到与 ZCode 相关的 desktop 文件,例如:
zcode.desktop
如果没有输出,或输出明显不是 ZCode,请先重新启动一次 ZCode。AppImage 用户建议从固定路径重新启动:
~/Applications/ZCode.AppImage
然后再次执行:
xdg-mime query default x-scheme-handler/zcode
AppImage 登录回调注意事项
下面这些情况容易导致登录完成后无法回到 ZCode:
- AppImage 启动后被移动、重命名或删除。
- 同时安装了 deb 版和 AppImage 版。
- 曾经用
sudo启动过 AppImage。 - 系统仍然关联到旧版本 ZCode。
- 当前启动方式依赖特殊参数,但系统打开方式没有使用相同参数。
建议处理方式:
- 关闭所有 ZCode 窗口。
- 将 AppImage 放到固定目录。
- 从固定路径重新启动 ZCode。
- 重新检查系统打开方式:
xdg-mime query default x-scheme-handler/zcode
如果你使用了自定义启动脚本,也可以确认桌面文件是否指向该脚本:
grep -n "Exec=" ~/.local/share/applications/zcode.desktop 2>/dev/null || true
deb 用户注意事项
如果使用 deb 安装版,请尽量不要同时运行 AppImage 版。若之前用过 AppImage,建议先关闭所有 ZCode 窗口,再从系统应用菜单或命令行启动 deb 版:
zcode
如果登录仍无法回到 ZCode,请把下面命令的输出通过 用户反馈渠道 发给我们:
xdg-mime query default x-scheme-handler/zcode
ps -ef | grep -i '[Z]Code' || true
中文输入法无法使用
如果在 ZCode 中只能输入英文,通常和当前 Linux/WSLg 会话的输入法环境有关。请先确认输入法服务是否正常:
echo "$GTK_IM_MODULE"
echo "$QT_IM_MODULE"
echo "$XMODIFIERS"
ibus engine 2>/dev/null || true
fcitx5-remote 2>/dev/null || true
IBus 用户
可以尝试从已配置 IBus 的 shell 中启动 ZCode:
export GTK_IM_MODULE=ibus
export QT_IM_MODULE=ibus
export XMODIFIERS=@im=ibus
ibus-daemon -drx
~/Applications/ZCode.AppImage
如果你使用 deb 版,把最后一行替换为:
zcode
Fcitx5 用户
可以尝试:
export GTK_IM_MODULE=fcitx
export QT_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
fcitx5 -d
~/Applications/ZCode.AppImage
如果你使用 deb 版,把最后一行替换为:
zcode
WSLg 下首个中文字符不显示
部分 WSLg + IBus 环境中,可能出现首次切换到中文输入时,第一个字符没有立即显示,需要先输入一个英文字符,后续中文才正常显示。
这是 WSLg 输入法链路中的已知兼容性问题。当前可以尝试以下方式缓解:
- 从已经配置好输入法环境变量的 shell 启动 ZCode。
- 尝试切换到 Fcitx5。
- 切换输入法后先输入一个占位字符再删除。
反馈问题时请提供的信息
如果按以上步骤仍无法解决,请把以下信息通过 用户反馈渠道 发给我们:
echo "WSL_DISTRO_NAME=$WSL_DISTRO_NAME"
echo "XDG_SESSION_TYPE=$XDG_SESSION_TYPE"
echo "DISPLAY=$DISPLAY"
echo "WAYLAND_DISPLAY=$WAYLAND_DISPLAY"
echo "BROWSER=$BROWSER"
id -u
which xdg-open || true
which xdg-mime || true
xdg-mime query default x-scheme-handler/zcode || true
grep -n "Exec=" ~/.local/share/applications/zcode.desktop 2>/dev/null || true
ps -ef | grep -i '[Z]Code' || true
echo "GTK_IM_MODULE=$GTK_IM_MODULE"
echo "QT_IM_MODULE=$QT_IM_MODULE"
echo "XMODIFIERS=$XMODIFIERS"
ibus engine 2>/dev/null || true
fcitx5-remote 2>/dev/null || true
如果使用 AppImage,也请补充:
ls -l ~/Applications/ZCode.AppImage 2>/dev/null || true