如何为项目设置特定的 Ruby 版本(无 rvm 和 rbenv)

Posted

技术标签:

【中文标题】如何为项目设置特定的 Ruby 版本(无 rvm 和 rbenv)【英文标题】:How to set specific Ruby version for projects(no rvm and rbenv) 【发布时间】:2019-09-03 03:34:48 【问题描述】:

我在某个项目上工作,但有时我不得不为其他项目更改 Ruby 版本。现在,当我想回到第一个项目时,由于 Ruby 版本,我遇到了一些错误。问题是如何更改 Ruby 版本(目前我在 RVM 安装的 Ruby 2.5.1 上)并想回到 Ruby 2.4.5 但它不是通过 Rvm 或 Rbenv 安装的,只是干净安装。

我知道如何通过 Rvm 更改 Ruby 版本,但如何更改为未安装任何附加(Rvm 或 Rbenv)的版本

【问题讨论】:

【参考方案1】:

见文档:https://rvm.io/gemsets/creating

https://rvm.io/gemsets/basics

如果您有多个项目使用不同的 ruby​​ 版本,那么我们需要使用 rvm gemsets 来避免冲突。

要遵循的步骤:

rvm gemset create sriharsh
rvm use 2.2.1@sriharsh --create
rvm gemset list (to check list of gemsets)
rvm list (list of rvm rubbies)

但是,如果您使用的是 Bundler,则不需要使用 RVM Gemset。任何带有 bundle exec 的命令都会在项目的 Gemfile 的上下文中执行。

例如:

bundle exec rails s

【讨论】:

【参考方案2】:

即使这不能直接回答您的问题,我还是建议不要同时使用 RVM Ruby 和系统 Ruby。 RVM 并非设计为以这种方式工作,并且这种安装引起的每个问题都很难调试,尤其是如果您是初学者。

因此,最简单的方法是完全删除系统 Ruby 并为您的其他项目创建第二个 RVM gemset。 (实际上,这就是 RVM 的用途。)

【讨论】:

以上是关于如何为项目设置特定的 Ruby 版本(无 rvm 和 rbenv)的主要内容,如果未能解决你的问题,请参考以下文章

使用 rvmrc 或 ruby​​-version 文件使用 RVM 设置项目 gemset?

如何在一个简单的非 Rails 项目中使用特定的 Ruby 版本

iOS 项目持续集成:Jenkins + Fastlane

对于已编译的库,如 libyaml,Ruby(或 RVM)在文件系统中搜索何处以加载或解析它们?

安装 RVM(Ruby 版本管理器)的关键问题

如何使用 RVM 更改我的 Ruby 版本?