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

Understanding RBENV: Switching Ruby Versions Locally

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

(在我的例子中,我目前正在使用 Ruby -v 2.4.0 想回到早期版本以避免我似乎无法得到的 Devise Gem 错误过去。)

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

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

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

示例:2.3.0

回答你的另一个问题,

Rbenv's github page uses $ rbenv local 1.9.3-p327 as an example command of how to do this. What I want to know is what the -p327 refers to...

Ruby 的旧版本控制策略是 MAJOR.MINOR.TEENY-PATCH

p327 只是指补丁级别,它基本上是一个数字,在 MINOR 数字递增后,每个已接受的补丁都会递增。 Prior to Ruby 2.1,安全修复没有增加 TEENY 版本,所以一些版本指定了补丁级别。