在我的开发环境中,我有3.2.14到3.2.18的多个Rails应用程序 . 我正在使用Ruby 1.9.3(是的,我知道)用于这些应用程序,它是通过rbenv安装和管理的 . 我即将用Rails 4.1和Ruby 2.1构建一些新的应用程序 . 我的问题是,使用rbenv处理安装多个版本的Ruby的最佳方法是什么 . 目前1.9.3设置为全局,但我希望不同的Rails应用程序(4.1)使用Ruby 2.1 .
我想我在Ruby管理方面有点落伍,所以我可以在这里使用 . 再次,希望有多个Rails应用程序(不同版本3.2.14-4.1.x)和多个Ruby实例来支持每个应用程序 .
我提前感谢你的帮助 .
1 回答
在应用程序根目录中创建
.ruby-version
文件,并指定所需的ruby版本 . 例如,如果您希望一个应用程序使用1.9.3而另一个应用程序使用其他2.1.0,那么您将在这两个应用程序中分别使用.ruby-version文件,指定版本:Update
对于每个已安装的ruby版本,您将拥有一个shims目录,该目录将容纳该特定版本的所有宝石 . 当你在ruby版本之间切换时,rbenv只会将环境变量设置为你选择的那个 .
在上面的示例中,我将目录ruby_cookbook的本地ruby版本设置为2.1.2,
gem list
仅显示为2.1.2安装的gem .我还在
try_stuff
目录中创建了一个带有ruby版本1.9.3-p547的.ruby-version
. 如您所见,gem列表仅显示为1.9.3安装的gem .您安装的gem特定于当前版本的ruby .
如果项目root具有
.ruby-version
文件,则您的环境将自动将当前ruby版本设置为指定的版本 . 所以,是的,您的 生产环境 环境将需要您在.ruby-version
中提到的版本 . 如果您使用git进行源代码管理,则可以将该文件添加到.git-ignore中,您将无法在prod版本中看到它 .