RVM系统范围的gemsets

时间:2014-01-14 00:05:36

标签: ruby rvm production-environment

我需要在一台服务器上托管不同的Ruby应用程序。每个应用程序都有自己的互不兼容的ruby版本和宝石。有没有办法在系统范围模式下安装RVM 有gemsets也是系统范围的,并没有绑定到特定用户和他的$ HOME目录?或者是否有更好的方法在同一台机器上托管不同的Ruby应用程序?

2 个答案:

答案 0 :(得分:1)

使用mixed mode installation of RVM基本上你可以安装系统,并且每个应该拥有自己的gemset的用户都可以运行:

rvm user gemsets

答案 1 :(得分:-1)

由于RVM在系统范围模式下出现了很多问题(rvmsudo无法正常工作,目录是由RVM在文件系统根目录中创建的等等),我决定沿着vendor/bundle路线走下去。

我使用我的发行版软件包管理器安装了ruby 1.9.3 w / latest补丁,然后运行了安装了bundler gem系统的gem install bundler --no-user-install

然后我在每个应用程序的目录bundle install --path vendor/bundle --without development test中运行,该目录在应用程序的vendor/bundle目录中安装了所需的生产宝石。如果有任何rake任务或普通ruby文件作为应用程序设置的一部分运行,那么这些文件前缀为bundle exec ...(在运行命令时使用来自vendor / bundle的gem环境)。

最后,所有应用都可以在没有任何先前的环境设置或RVM魔法的情况下直接运行,并且每个应用都有独立的宝石。