首页 文章

多个Rails应用程序和带rbenv的Ruby版本

提问于
浏览
0

在我的开发环境中,我有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 回答

  • 0

    在应用程序根目录中创建 .ruby-version 文件,并指定所需的ruby版本 . 例如,如果您希望一个应用程序使用1.9.3而另一个应用程序使用其他2.1.0,那么您将在这两个应用程序中分别使用.ruby-version文件,指定版本:

    /application1/.ruby-version
    1.9.3
    
    /application2/.ruby-version
    2.1.0
    

    Update

    Different Ruby/Gem Versions

    对于每个已安装的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版本中看到它 .

相关问题