gpt4 book ai didi

ruby-on-rails - 升级到 rails 3 后,Rails 2.x mongrel 无法启动。 -- mongrel_rails (MissingSourceFile)

转载 作者:行者123 更新时间:2023-12-03 18:20:23 25 4
gpt4 key购买 nike

在 OS X 上将我的 Rails 安装升级到 Rails 3 后,我在使用 Mongrel 运行我的 Rails 2.x 开发站点时遇到了问题。 WEBrick 似乎工作,但我真的很想有很好的 Mongrel 输出进行调试。

运行后$ script/server我明白了:

/Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load': no such file to load -- mongrel_rails (MissingSourceFile)
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:489:in `load'
from /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/servers/mongrel.rb:64
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `gem_original_require'
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:342:in `new_constants_in'
from /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb:496:in `require'
from /Library/Ruby/Gems/1.8/gems/rails-2.0.2/lib/commands/server.rb:39
from /Library/Ruby/Site/1.8/rubygems/custom_require.rb:49:in `gem_original_require'

到目前为止,这是我尝试过的:

$ sudo gem update system

$ sudo gem update

$ sudo gem uninstall mongrel

$ sudo gem install mongrel --include-dependencies

$ which mongrel_rails

/usr/bin/mongrel_rails
$ mongrel_rails start

→ 成功,但没有标准输出

$ which mongrel_rails

/usr/bin/mongrel_rails
$ rails _2.0.2_ test

→ 新应用也有同样的问题。
  • 操作系统:OS X.6.x
  • Rails:3.0.5(Rails 2.x 应用程序存在问题)
  • gem -v : 1.6.1
  • 杂种:杂种 (1.1.5)

  • 我已经阅读了关于“-- mongrel_rails (MissingSourceFile)”的所有谷歌结果;没有很多。

    这里有人能告诉我如何进行调试吗?谢谢!

    更新:

    我现在尝试安装旧版本的 gem 并在我的 Rails 2.x 站点的 config/environment.rb 中指定那些文件。我试过 1.1.5、1.1.4 和 1.2.0pre。

    这些都没有丝毫不同。

    由于在 usr/bin 中的可执行文件我想知道是否是文件所有权问题在我的 Rails 3 安装中搞砸了,如果其中一个文件在运行时没有得到我的路径?
    /Library/Ruby/Gems/1.8/gems/activesupport-2.0.2/lib/active_support/dependencies.rb由 admin/root 所有,所以应该没问题,对吧?

    会不会是 active_support 的问题!?

    这是来自 dependencies.rb 的代码那是抛出错误:

    484 class Object
    485
    486 alias_method :load_without_new_constant_marking, :load
    487
    488 def load(file, *extras) #:nodoc:
    489 Dependencies.new_constants_in(Object) { super(file, *extras) }
    490 rescue Exception => exception # errors from loading file
    491 exception.blame_file! file
    492 raise
    493 end
    ...

    这是一个找不到文件的错误,所以它没有寻找我知道文件所在的位置......
    在命令行上运行 mongrel_rails 工作...
    其中 mongrel_rails 显示在 usr/bin ,
    所以有什么问题?

    最佳答案

    我遇到了同样的问题并找到了原因。

    发生这种情况是因为当您需要“any_gem”时,新版本的 RubyGems(1.6.2) 不会将“any_gem/bin”添加到 ruby​​ 加载路径 ($LOAD_PATH)。

    例如,在 RubyGems 版本 = 1.4.1 中,这可以正常工作。在我需要 'mongrel' 之后,我可以在接下来的加载路径中看到:

  • ...rvm/gems/ruby-1.8.7-p330/gems/mongrel-1.1.5/bin
  • ...rvm/gems/ruby-1.8.7-p330/gems/mongrel-1.1.5/lib
  • ...rvm/gems/ruby-1.8.7-p330/gems/mongrel-1.1.5/ext

  • 使用新版本 (1.6.2) 我只能看到:
  • ...rvm/gems/ruby-1.8.7-p330/gems/mongrel-1.1.5/lib
  • ...rvm/gems/ruby-1.8.7-p330/gems/mongrel-1.1.5/ext

  • 这就是为什么 ruby​​ 找不到 'mongrel_rails' 的原因。

    关于ruby-on-rails - 升级到 rails 3 后,Rails 2.x mongrel 无法启动。 -- mongrel_rails (MissingSourceFile),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5228091/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com