我的开发环境中有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实例来支持每个应用程序。
我提前感谢你的帮助。
答案 0 :(得分:0)
在应用程序根目录中创建一个.ruby-version
文件,并指定所需的ruby版本。例如,如果您希望一个应用程序使用1.9.3而另一个应用程序使用其他2.1.0,那么您将在这两个应用程序中分别使用.ruby-version文件,指定版本:
/application1/.ruby-version
1.9.3
/application2/.ruby-version
2.1.0
<强>更新强>
对于每个已安装的ruby版本,您将拥有一个shims目录,该目录将容纳该特定版本的所有宝石。当你在ruby版本之间切换时,rbenv只会将环境变量设置为你选择的那个。
在上面的示例中,我将目录ruby_cookbook的本地ruby版本设置为2.1.2,而gem list
仅显示为2.1.2安装的gem。
我还在.ruby-version
目录中创建了一个带有ruby版本1.9.3-p547的try_stuff
。如您所见,gem列表仅显示为1.9.3安装的gem。
您安装的gem特定于当前版本的ruby。
如果您的项目根目录有.ruby-version
文件,您的环境会自动将当前的ruby版本设置为指定的版本。所以,是的,您的生产环境需要您在.ruby-version
中提到的版本。如果你使用git进行源代码控制,你可以将该文件添加到你的.git-ignore中,你不会在你的prod版本中看到它。