为什么 gem 告诉我当前的 ruby 版本是 2.5.0,但事实并非如此?

问题描述 投票:0回答:1

上下文:我正在尝试在 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 修订版 e51014f9c0)[x86_64-linux]

并运行

rbenv global
输出

3.2.2

所以系统仍然使用 2.5.0 对我来说毫无意义。有人可以解释一下修复方法是什么吗?

ruby jekyll ubuntu-16.04 rbenv
1个回答
0
投票

不知道

rbenv
(但是
rvm
asdf
和其他类似的工具),但作为Ruby版本管理器,它的工作是设置不同/多个Ruby环境,为不同的用户安装不同的gem。

由于您调用

sudo gem install ...
,这可能会解析为默认情况下为具有更高权限的用户提供的全局
gem
命令(a super user)。很可能没有针对这种情况设置 rbenv,因此它会退回到系统范围的安装
ruby
gem
命令,这似乎是 Ubuntu 18.04 上的 Ruby 2.5。

因此,尝试在没有

sudo
的情况下运行该命令。如果失败,因为它想要安装系统范围的软件包(库),请参阅 rbenv 文档如何实现这一点。它可能会提供要运行的命令列表(例如
sudo apt install libprotobuf
)或要求您输入密码以进行系统修改。

© www.soinside.com 2019 - 2024. All rights reserved.