能否仅在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环境变量。解决步骤:
- 安装虚拟显示工具Xvfb:
sudo apt install -y xvfb - 运行脚本时,先设置环境变量并通过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
相关产品推荐
相关产品推荐

