Ruby2d 在 Ubuntu 18.04 上的 WSL2 中无法工作 - 出现错误“没有可用的视频设备”

Posted

技术标签:

【中文标题】Ruby2d 在 Ubuntu 18.04 上的 WSL2 中无法工作 - 出现错误“没有可用的视频设备”【英文标题】:Ruby2d not working in WSL2 on Ubuntu 18.04 - Getting error "No available video device" 【发布时间】:2022-01-03 05:31:32 【问题描述】:

我在 Ubuntu 18.04 上使用 WSL2 在 Windows 10 中运行 Ruby 代码。 例如,运行 Ruby on Rails 无需特殊设置即可轻松完成。

对于 Ruby2D: 安装很顺利,但是在运行任何 Ruby2D 文件时出现错误,即使是最基本的文件:

require 'ruby2d'
show

我在控制台中收到此错误:

error: XDG_RUNTIME_DIR not set in the environment.
Error: (SDL_Init) No available video device
error: XDG_RUNTIME_DIR not set in the environment.
Error: (SDL_CreateWindow) No available video device
Error: (GL2 / SDL_GL_CreateContext) Video subsystem has not been initialized
Error: An OpenGL context could not be created

如何在 WSL2 上将“视频设备”“添加”(或配置)到我的 Ubuntu?

【问题讨论】:

【参考方案1】:

您可能想看看this。我很确定这是行不通的 - 我必须搜索很多不同的文章才能使其发挥作用。

让它在您的设备上运行的一种方法可能是使用 X-Server,但不值得这么麻烦。将 Linux 安装为双引导。

【讨论】:

您给出的文章给出了与@NotTheDr01ds 第二种解决方案非常相似的答案。比它只能通过变通来完成,我猜....至少在 Win10 上。 @tazmazia 我会再次强调,不值得麻烦 - 我使用过 xfce,而且设置起来并不容易。双启动会是更好的选择。您可以安装使用 MinGW 的 Rubyinstaller。【参考方案2】:

如您所见,Windows 10 下的 WSL 没有内置任何 GUI/X/windowing 功能。有几种可能性:

如果您有能力升级到 Windows 11,它支持 WSLg(内置)在 Windows 上直接运行 Linux GUI 应用程序。我刚刚安装了 Ruby、ruby2d(及其依赖项)并且能够成功执行您的示例。我认为它只是应该显示一个空白的 GUI 窗口...

如果您无法升级到 Windows 11,仍然有几种可能的替代方案来运行 Linux GUI 应用程序。我没有机会在这种类型的环境中测试 ruby​​2d,但我相信它应该可以工作。如果您遇到问题,我至少可以启动并运行第一个选项来尝试一下,看看我们是否可以解决它:

首先,我的偏好是安装xrdp 和一个简单的窗口管理器,如xfce。有关详细信息和说明,请参阅我的回答 here。您不需要完整的 Gnome 环境(需要 Systemd)——只需简单安装 Xfce。

不过,最流行的方法是在 Windows 10 上安装第三方 X 服务器并手动设置 DISPLAY 变量。如果您想走这条路线,请参阅this question and its answer 了解详情。

【讨论】:

以上是关于Ruby2d 在 Ubuntu 18.04 上的 WSL2 中无法工作 - 出现错误“没有可用的视频设备”的主要内容,如果未能解决你的问题,请参考以下文章

Android SDK Manager 无法在 Ubuntu 18.04 上的 Eclipse 中打开

如何从安装在 Ubuntu 18.04 VirtualBox 上的 Wordpress Web 界面写入/上传

Ubuntu 18.04 上的 FLTK:在 Dock 上设置图标的弹出文本

Ubuntu 18.04 上的 cron 作业的身份验证问题

ubuntu 18.04 上的 octave 5.2:print -dpng 不起作用

RabbitMQ 在Ubuntu18.04上的安装