了解RBENV:在本地切换Ruby版本

时间:2017-06-14 00:53:16

标签: ruby-on-rails ruby rbenv

升级我的Ruby版本后,我(正如预期的那样)遇到了一些问题,让我的服务器启动并运行旧项目。我很好奇如何在本地为特定项目切换Ruby版本。 Rbenv的github页面使用$ rbenv local 1.9.3-p327作为如何执行此操作的示例命令。我想知道的是-p327所指的是什么,我的情况应该是什么,以及它是否必要。我可以运行$ rbenv local 2.3.1吗?

(在我的情况下,我目前正在使用Ruby -v 2.4.0想要回到早期版本以避免我似乎无法通过的Devise Gem错误。)

3 个答案:

答案 0 :(得分:2)

$ rbenv local 2.3.1将完全按照您的推测完成。项目特定版本的Ruby是通过项目目录中的.ruby-version文件设置的。此设置优先于rbenv global的任何使用,这将使Ruby版本设置为未指定的位置。

答案 1 :(得分:1)

Rbenv使用.ruby-version文件来检测正在使用的ruby版本项目。那你有这个档案吗?

根据项目使用的ruby版本,只需在文件中写一个数字。

示例:2.3.0

答案 2 :(得分:1)

要回答您的其他问题,

  

Rbenv的github页面使用$ rbenv local 1.9.3-p327作为如何执行此操作的示例命令。我想知道的是-p327指的是什么......

Ruby的旧版本控制策略为MAJORMINORTEENY - PATCH

p327只是指patchlevel,它基本上是一个在MINOR个数字增加后为每个接受的补丁递增的数字。 Prior to Ruby 2.1,安全修复程序没有增加TEENY版本,因此某些版本指定了补丁级别。