为什么Phusion乘客拒绝识别我更新的RubyGems?

为什么Phusion乘客拒绝识别我更新的RubyGems?,ruby,rubygems,passenger,Ruby,Rubygems,Passenger,我已经在我能想到的任何地方更新了RubyGems,以更新它: 但Phusion乘客不断抛出同样的错误: 有一个奇怪的地方显示1.3.1为版本,尽管文件名为1.3.6。我显然把这里的事情搞砸了 也就是说,我需要更新到1.3.2或更高版本,并且我目前有1.3.1 你知道我怎样才能让PP使用RubyGems的正确版本,最好能改变一些事情,这样我就不必再面对这个问题了吗 这可能与RubyGems和Ruby环境的不同路径有关吗?以下是我的环境: 这可能有几个原因 首先,验证您不需要显式地要求envir

我已经在我能想到的任何地方更新了RubyGems,以更新它:

但Phusion乘客不断抛出同样的错误:

有一个奇怪的地方显示1.3.1为版本,尽管文件名为1.3.6。我显然把这里的事情搞砸了

也就是说,我需要更新到1.3.2或更高版本,并且我目前有1.3.1

你知道我怎样才能让PP使用RubyGems的正确版本,最好能改变一些事情,这样我就不必再面对这个问题了吗

这可能与RubyGems和Ruby环境的不同路径有关吗?以下是我的环境:


这可能有几个原因

首先,验证您不需要显式地要求environment.rb中的rubygem。也就是说,如果你有这样一行:

config.gem "ruby_gems", :version => "1.3.1"
然后您必须从中删除该版本

另外,看到rubygems更新提供的版本不正确,您可能需要卸载它

sudo gem uninstall rubygems-update
因为你已经更新了它,所以不再需要那个宝石了

我不认为这会有帮助,但我可能也会卸载macports版本的rubygem,因为这可能会产生冲突,即使在本例中看起来不是这样

更新:

因为您使用的是来自操作系统的Ruby,所以根本不需要通过macports安装rubygem。 要删除它,请执行以下操作:

sudo port uninstall rubygems
之后,确保升级了正确的rubygem(二进制显示正确,但可能缺少某些内容)

在你做完那件事之后。打开
irb
(即irb而不是rails控制台)并检查以下各项:

require 'rubygems'
puts Gem::RubyGemsVersion

另外,如果您可以粘贴apache/nginx配置的外观,我怀疑其中是否有错误,但您永远不会知道。

首先,获取您的Passengeruby配置的值。然后使用该Ruby解释器运行以下脚本:

像这样:

/path-to-your-passenger-ruby-interpreter myscript.rb

然后按照指示去做。

非常感谢你的来电,吉米。首先,environment.rb文件没有问题。没有提到这一点,我和我的团队的其他成员有着完全相同的内容,他们都为我工作,所以这可能是一个本地问题。即将进行卸载并返回报告。我是安装所有MacPorts还是只安装rubygem?
/path-to-your-passenger-ruby-interpreter myscript.rb