Ruby Ubuntu 8.10上的Phusion乘客:如何设置gem目录和用户?

Ruby Ubuntu 8.10上的Phusion乘客:如何设置gem目录和用户?,ruby,ubuntu,rubygems,passenger,Ruby,Ubuntu,Rubygems,Passenger,我在ubuntu上运行phusion passenger有一段时间了。今天我将Ruby Enterprise Edition更新为最新版本——现在看来我必须重新安装系统上安装的所有gems。下面是我的问题 设置phusion passenger和ruby enterprise edition以便在发布新的ruby enterprise edition之后轻松维护gems的最佳方法是什么 gems应该从根用户还是从系统用户(user.gem目录)安装?这里的最佳实践是什么 为了使系统的可维护性更

我在ubuntu上运行phusion passenger有一段时间了。今天我将Ruby Enterprise Edition更新为最新版本——现在看来我必须重新安装系统上安装的所有gems。下面是我的问题

  • 设置phusion passenger和ruby enterprise edition以便在发布新的ruby enterprise edition之后轻松维护gems的最佳方法是什么
  • gems应该从根用户还是从系统用户(user.gem目录)安装?这里的最佳实践是什么

为了使系统的可维护性更容易,我现在做了以下工作(欢迎发表意见,因为我不确定这是否是最佳做法)

  • 以root用户身份卸载所有gem:gem list--无版本| xargs gem uninstall-a-I
  • 作为root用户安装乘客(通过/opt/REE/bin/gem安装乘客)-我还必须安装“rake”
  • 创建了从/opt/REE到最新ruby enterprise版本的符号链接
  • 以root用户身份运行/opt/REE/bin/passenger-install-apache2-module
  • 将loadmodule指令添加到/etc/apache2/apache2.conf
  • 创建一个用户,并将其路径更改为1)ruby系统二进制目录 2) 特定于用户的gem二进制目录

    PATH=$PATH:/home/.gem/ruby/1.8/bin:/opt/ruby-enterprise-1.8.7-2010.01/bin

(我在.bash_配置文件中更改了该设置,并切换到su用户名为-l的用户) 我现在保存的大部分宝石都在包装中(冻结)。安装在系统上的rails除外

  • 最后一步:以gem用户身份重新安装所有gem;之前通过gem list--无版本>gems.txt将所有gem名称保存在txtfile中,并自动重新安装(有关更多信息,请参阅)

还有别的(更好的)办法吗?其他人是如何进行这种系统维护的?

我想知道你是否可以像jruby一样使用GEM_HOME?我还没有试过,但看起来会很优雅。

好的,我想我现在已经找到了答案(至少对我来说是这样的),更多信息请参见。冻结rails,将gems解包给供应商dir,让基本gems在线工作。对于基本宝石,我指的是机架、乘客、快速线程和rake(+db宝石,如果您愿意)。其余部分随应用程序一起提供,并在部署时进行编译,如果需要,可通过rakegems:install进行编译。