提问人:Ashamandarei 提问时间:10/9/2023 更新时间:10/10/2023 访问量:82
为什么 gem 告诉我当前的 ruby 版本是 2.5.0,而事实并非如此?
Why is gem telling me the current ruby version is 2.5.0 when it's not?
问:
上下文:我正在尝试在 Ubuntu 18.04 LTS 上安装 jekyll,这样我就可以在 GitHub Pages 站点上工作,而不必在每次查看更改时都将其部署到生产环境。
情况是这样的。当我运行时,它告诉我安装 google-protobuf。当我运行时,它告诉我:sudo gem install jekyll
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 设置)
我认为是 2.5.0 版本导致了问题,但正在运行输出system
ruby -v
Ruby 3.2.2(2023-03-30 修订版 E51014F9C0) [x86_64-Linux]
和运行输出rbenv global
3.2.2
所以对我来说,系统仍在使用 2.5.0 是没有意义的。有人可以说明解决方法是什么吗?
答:
不知道(但是,和其他类似的工具),但作为 Ruby 版本管理器,它的工作是设置不同的/多个 Ruby 环境,为不同的用户安装不同的 gem。rbenv
rvm
asdf
由于您调用此命令可能会解析为默认情况下可用于具有更高权限的用户 (a super user) 的全局命令。很可能 rbenv 没有为这种情况设置,因此它回退到系统范围的安装和命令,这似乎是 Ubuntu 2.5 上的 Ruby 18.04。sudo gem install ...
gem
ruby
gem
因此,请尝试在没有 .如果这失败了,因为它想安装系统范围的软件包(库),求助于 rbenv 文档如何实现这一点。它可能会给出要运行的命令列表(例如)或要求您输入密码以进行系统修改。sudo
sudo apt install libprotobuf
评论
gem install jekyll
rbenv
sudo