如何通过asdf将Ubuntu 22.04上的Ruby 3.2.2升级至3.3.0(解决ruby-build: definition not found: 3.3.0错误)
如何通过asdf将Ubuntu 22.04上的Ruby 3.2.2升级至3.3.0(解决ruby-build: definition not found: 3.3.0错误)
嘿,我之前也碰到过一模一样的问题!这个错误本质上是因为你的asdf Ruby插件没同步到最新的版本定义库,所以找不到Ruby 3.3.0的安装配置。别慌,跟着下面的步骤一步步来就能搞定:
步骤1:更新asdf的Ruby插件
asdf里各个语言的版本安装配置是靠对应插件维护的,Ruby 3.3.0是比较新的版本,你的插件大概率还没同步到这个版本的定义。先执行这条命令更新Ruby插件:
asdf plugin update ruby
要是你想一次性更新asdf所有的插件,也可以用:
asdf plugin update --all
步骤2:安装Ruby 3.3.0所需的系统依赖
Ubuntu编译Ruby需要一些基础依赖包,提前装好能避免安装过程中出现编译错误。执行这条命令搞定依赖:
sudo apt-get install build-essential libssl-dev libreadline-dev zlib1g-dev
步骤3:安装Ruby 3.3.0
现在再尝试安装Ruby 3.3.0,这时候插件已经有了最新的版本定义,应该就能正常执行了:
asdf install ruby 3.3.0
步骤4:设置Ruby版本
安装完成后,你需要把3.3.0设为全局默认版本或者当前目录的局部版本:
- 设置全局版本(整个系统终端生效):
asdf global ruby 3.3.0 - 设置局部版本(仅当前目录及子目录生效,会生成
.tool-versions文件):asdf local ruby 3.3.0
验证安装结果
最后打开新的终端窗口(或者执行source ~/.bashrc/source ~/.zshrc刷新配置),运行以下命令确认版本:
ruby -v
如果输出显示ruby 3.3.0p0(或者类似的版本号),就说明升级成功啦!
额外小提示
要是执行完步骤1还是提示找不到版本定义,可以试试删除Ruby插件的缓存目录后重新更新:
rm -rf ~/.asdf/plugins/ruby/ruby-build asdf plugin update ruby
备注:内容来源于stack exchange,提问作者Dennis Kamau
相关产品推荐
相关产品推荐

