为什么gem告诉我当前的ruby版本是2.5.0,而实际上不是?

dced5bon  于 12个月前  发布在  Ruby
关注(0)|答案(1)|浏览(77)

上下文:我正在尝试在Ubuntu 18.04 LTS上安装jekyll,这样我就可以在GitHub Pages网站上工作,而不必在每次想要查看时将更改部署到生产环境中。
情况是这样的当我运行sudo gem install jekyll时,它告诉我安装google-protobuf。当我运行sudo gem install google-protobuf时,它告诉我:
google-protobuf需要Ruby版本<3.3.dev,>= 2.6。当前的Ruby版本是2.5.0。
运行rbenv versions表明,我的系统上有两个版本
系统

  • 3.2.2(由/home/me/.rbenv/version设置)

我认为system是导致问题的2.5.0版本,但运行ruby -v输出
ruby 3.2.2(2023-03-30 revision e51014f9c0)[x86_64-Linux]
并运行rbenv global输出
3.2.2
所以我觉得这个系统还在用2.5.0是没有意义的。有人能解释一下解决办法是什么吗?

pkln4tw6

pkln4tw61#

不知道rbenv(但rvmasdf和其他类似的工具),但作为一个Ruby版本管理器,它的工作是为不同的用户设置不同的/多个Ruby环境,安装不同的gem。
由于您调用了sudo gem install ...,因此这可能会解析为默认情况下对具有更高权限的用户可用的全局gem命令(a super user)。最有可能的是rbenv没有针对这种情况进行设置,所以它福尔斯会返回到系统范围的install rubygem命令,这似乎是Ubuntu 18.04上的Ruby 2.5。
因此,尝试在不使用sudo的情况下运行命令。如果失败,因为它想安装系统范围的包(库)诉诸rbenv文档如何实现这一点。它可能会给予一个要运行的命令列表(例如,sudo apt install libprotobuf)或要求您输入密码以进行系统修改。

相关问题