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

能否仅在GitHub Codespace中安装使用Gosu?含SDL报错求助

在GitHub Codespace中安装并运行Gosu的方案

完全可以仅在GitHub Codespace中安装使用Gosu,无需本地部署,以下是具体步骤及报错解决方法:

你遇到的报错信息:

$ ruby game/try.rb 
error: XDG_RUNTIME_DIR not set in the environment.
/usr/local/rvm/gems/ruby-3.3.4/gems/gosu-1.4.6/lib/gosu/swig_patches.rb:18:in `initialize': Could not initialize SDL Video: No available video device (RuntimeError)
        from /usr/local/rvm/gems/ruby-3.3.4/gems/gosu-1.4.6/lib/gosu/swig_patches.rb:18:in `initialize'
        from game/try.rb:5:in `initialize'
        from game/try.rb:14:in `new'
        from game/try.rb:14:in `<main>'

一、在Codespace中安装Gosu

  • 打开目标GitHub仓库,创建或进入已有的Codespace
  • 安装Gosu依赖的系统库:
    sudo apt update && sudo apt install -y libsdl2-dev libsdl2-ttf-dev libsdl2-mixer-dev libsdl2-image-dev ruby-dev
    
  • 通过RubyGems安装Gosu:
    gem install gosu
    

二、解决SDL视频设备初始化报错

报错原因是Codespace默认是无头(无图形界面)环境,缺少视频输出设备,同时未设置XDG_RUNTIME_DIR环境变量。解决步骤:

  1. 安装虚拟显示工具Xvfb:
    sudo apt install -y xvfb
    
  2. 运行脚本时,先设置环境变量并通过Xvfb创建虚拟显示:
    export XDG_RUNTIME_DIR=/tmp/runtime-codespace
    mkdir -p $XDG_RUNTIME_DIR
    xvfb-run -a ruby game/try.rb
    

如果需要频繁运行,可将上述命令封装成脚本:
创建run_game.sh文件,写入内容:

#!/bin/bash
export XDG_RUNTIME_DIR=/tmp/runtime-codespace
mkdir -p $XDG_RUNTIME_DIR
xvfb-run -a ruby game/try.rb

然后赋予执行权限并运行:

chmod +x run_game.sh
./run_game.sh

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 14:07:12