You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WSL2下Ubuntu18.04运行Ruby2d报"No available video device"如何解决

报错根因

该报错是因为WSL2默认没有提供图形渲染环境,Ruby2d依赖的SDL图形库需要X窗口服务才能创建图形窗口,同时缺少XDG_RUNTIME_DIR必要环境变量配置。

解决方案(Windows 10通用方案)

1. 安装并配置Windows侧X服务

  • 在Windows系统中安装VcXsrv,启动时需做如下配置:
    • 勾选「Disable access control」,允许WSL2的访问请求
    • 附加启动参数添加-ac,关闭访问限制
    • 确认Windows防火墙允许VcXsrv通过专用、公用网络访问

2. 配置WSL2 Ubuntu端环境变量

编辑用户配置文件~/.bashrc(使用zsh则编辑~/.zshrc),在末尾添加如下内容:

# 图形输出配置
export DISPLAY=$(awk '/nameserver / {print $2; exit}' /etc/resolv.conf 2>/dev/null):0
export XDG_RUNTIME_DIR=/tmp/runtime-$USER
mkdir -p $XDG_RUNTIME_DIR
chmod 0700 $XDG_RUNTIME_DIR
export LIBGL_ALWAYS_INDIRECT=1

保存后执行source ~/.bashrc让配置即时生效。

3. 安装WSL2端图形依赖库

执行命令安装SDL、OpenGL等必要依赖:

sudo apt update
sudo apt install -y libsdl2-dev libsdl2-image-dev libsdl2-mixer-dev libsdl2-ttf-dev libgl1-mesa-glx x11-apps

安装完成后执行xeyes验证配置,若成功弹出带眼睛的图形窗口,说明图形环境配置正常。

4. 测试Ruby2d运行

重新执行你的测试代码:

require 'ruby2d'
show

即可正常弹出空白的Ruby2d窗口。

可选简化方案(Windows 10 21H2及以上版本适用)

无需单独安装X服务,直接升级WSL到最新版本开启WSLg即可:

  • 以管理员身份打开PowerShell,执行wsl --update
  • 升级完成后执行wsl --shutdown重启WSL
  • 再次进入Ubuntu系统即可直接使用图形能力,无需额外配置环境变量

内容的提问来源于stack exchange,提问作者taz mazia

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 10:15:08