使用rbenv安装Ruby 3.3.0-dev失败,如何解决?
解决rbenv安装Ruby 3.3.0-dev时BUILD FAILED的问题
问题场景
Debian 10环境下已安装Ruby 2.5.5,执行rbenv install 3.3.0-dev尝试安装Ruby 3.3.0-dev(预期覆盖现有版本),触发BUILD FAILED错误,核心报错为minitest-5.18.0的gem包验证失败,具体日志如下:
$ rbenv install 3.3.0-dev To follow progress, use 'tail -f /tmp/ruby-build.20230327204531.21780.log' or pass --verbose Cloning https://github.com/ruby/ruby.git... Installing ruby-master... BUILD FAILED (Debian 10 using ruby-build 20230309-1-gf3c1ccc) Inspect or clean up the working tree at /tmp/ruby-build.20230327204531.21780.nBIyRT Results logged to /tmp/ruby-build.20230327204531.21780.log Last 10 log lines: from /usr/lib/ruby/2.5.0/rubygems/package.rb:547:in `block (2 levels) in verify' from /usr/lib/ruby/2.5.0/rubygems/package/tar_reader.rb:29:in `new' from /usr/lib/ruby/2.5.0/rubygems/package.rb:546:in `block in verify' from /usr/lib/ruby/2.5.0/rubygems/package/file_source.rb:30:in `open' from /usr/lib/ruby/2.5.0/rubygems/package/file_source.rb:30:in `with_read_io' from /usr/lib/ruby/2.5.0/rubygems/package.rb:545:in `verify' from /usr/lib/ruby/2.5.0/rubygems/package.rb:526:in `spec' from /tmp/ruby-build.20230327204531.21780.nBIyRT/ruby-master/tool/lib/bundled_gem.rb:13:in `unpack' from -e:1:in `<main>' make: *** [defs/gmake.mk:333: .bundle/gems/minitest-5.18.0] Error 1
解决方案
1. 清理编译临时目录
删除本次编译残留的临时文件,避免损坏的缓存影响后续安装:
rm -rf /tmp/ruby-build.20230327204531.21780.nBIyRT
或者批量清理所有ruby-build临时文件:
rm -rf /tmp/ruby-build.*
2. 更新ruby-build
当前使用的ruby-build版本(20230309-1-gf3c1ccc)可能存在兼容bug,更新到最新版:
cd "$(rbenv root)"/plugins/ruby-build git pull
3. 安装编译依赖
确保Debian 10环境具备Ruby编译所需的完整依赖:
sudo apt update sudo apt install build-essential libssl-dev libreadline-dev zlib1g-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev software-properties-common libffi-dev
4. 重新尝试安装
添加--verbose参数执行安装,便于后续排查问题:
rbenv install 3.3.0-dev --verbose
5. 临时跳过gem验证(备选方案)
若上述方法无效,可临时跳过gem包验证环节:
export GEM_SKIP_VERIFY=1 rbenv install 3.3.0-dev
错误原因分析
日志显示错误发生在rubygems对minitest gem包的验证步骤,可能的诱因包括:
- 临时目录中的gem包文件损坏
- 系统自带的Ruby 2.5.5的rubygems版本过低,不兼容Ruby 3.3.0-dev源码中的gem格式
- 编译依赖缺失导致gem解压过程异常
内容的提问来源于stack exchange,提问作者ScreamedALot
相关产品推荐
相关产品推荐

