上下文:我正在尝试在 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 对我来说毫无意义。有人可以解释一下修复方法是什么吗?
不知道
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
)或要求您输入密码以进行系统修改。