我的Rails 2.3.x应用程序失败了,因为它使用了错误版本的Rack(one with a bug)。我的系统上有两个版本的Rack,一个是售卖的版本(正确的版本)和一个系统版本,通过apt-get
安装。
为什么使用错误的版本?这尤其令我感到困惑,因为早期在调用堆栈中正确使用了出售版本。我怎样才能使用正确的版本?
以下是我在应用程序失败时获得的堆栈跟踪的摘录:
/usr/lib/ruby/vendor_ruby/rack/utils.rb:202:in `set_cookie_header!'
/home/alaveteli/vendor/gems/rack-1.1.0/lib/rack/response.rb:57:in `set_cookie'
/home/alaveteli/vendor/rails/actionpack/lib/action_controller/response.rb:181:in `set_cookie'
请注意,第2行使用的是vendored Rack,但第1行使用的是Rack系统。 (response.rb
的第57行从Rack调用模块,因此:Utils.set_cookie_header!(header, key, value)
。)
我的$LOAD_PATH
就像我认为应该是这样,卖出的宝石出现在系统之前。
是的,我打算很快转移到使用Bundler。
答案 0 :(得分:0)
尝试使用rbenv和ruby-build。它是一个理智的ruby版本管理系统(不像rvm那样疯狂)。你会得到每个文件夹及其所有宝石的红宝石版本。当我遇到alaveteli问题时,我通常会在开发邮件列表中询问他们。我经营罗马尼亚人alaveteli。