升级我的Ruby版本后,我(正如预期的那样)遇到了一些问题,让我的服务器启动并运行旧项目。我很好奇如何在本地为特定项目切换Ruby版本。 Rbenv的github页面使用$ rbenv local 1.9.3-p327
作为如何执行此操作的示例命令。我想知道的是-p327
所指的是什么,我的情况应该是什么,以及它是否必要。我可以运行$ rbenv local 2.3.1
吗?
(在我的情况下,我目前正在使用Ruby -v 2.4.0想要回到早期版本以避免我似乎无法通过的Devise Gem错误。)
答案 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的旧版本控制策略为MAJOR
。MINOR
。TEENY
- PATCH
p327
只是指patchlevel,它基本上是一个在MINOR
个数字增加后为每个接受的补丁递增的数字。 Prior to Ruby 2.1,安全修复程序没有增加TEENY
版本,因此某些版本指定了补丁级别。