我需要在一台服务器上托管不同的Ruby应用程序。每个应用程序都有自己的互不兼容的ruby版本和宝石。有没有办法在系统范围模式下安装RVM 和有gemsets也是系统范围的,并没有绑定到特定用户和他的$ HOME目录?或者是否有更好的方法在同一台机器上托管不同的Ruby应用程序?
答案 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魔法的情况下直接运行,并且每个应用都有独立的宝石。