我已经安装了 Thin 并尝试执行 thin start ,最终出现此错误

C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': no such file to load -- C:/Ruby192/lib/ruby/gems/1.9.1/gems/thin-1.2.8-x86-mingw32/lib/1.9/thin_parser (LoadError)
    from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/thin-1.2.8-x86-mingw32/lib/thin.rb:48:in `rescue in <top (required)>'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/thin-1.2.8-x86-mingw32/lib/thin.rb:43:in `<top (required)>'
    from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from C:/Ruby192/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
    from C:/Ruby192/lib/ruby/gems/1.9.1/gems/thin-1.2.8-x86-mingw32/bin/thin:5:in `<top (required)>'
    from C:/Ruby192/bin/thin:19:in `load'
    from C:/Ruby192/bin/thin:19:in `<main>'

有人可以帮助我吗,提前致谢

最佳答案

输出表示一个名为 1.9 的目录,即
<ruby_install_dir>/lib/ruby/gems/1.9.1/gems/thin-1.2.8-x86-mingw32/lib/1.9/
注意:我的瘦版本是1.2.10。在下文中,我将使用出现在我系统上的路径。

出于某种原因,这个目录没有附带瘦 gem。但是一个名为 thin_parser.so 的文件驻留在父目录 <ruby_install_dir>/lib/ruby/gems/1.9.1/gems/thin-1.2.10/lib/

所以我的第一个解决方案是创建一个目录 1.9 并将文件 Thin_parser.so 复制到其中。
现在 thin start 对我有用。

或者,您可以编辑文件 <ruby_install_dir>/lib/ruby/gems/1.9.1/gems/thin-1.2.10/lib/thin.rb 并更改

if Thin.win?
  # Select proper binary under Windows
  major_ruby_version = RUBY_VERSION[/^(\d+\.\d+)/]
  require "#{Thin::ROOT}/#{major_ruby_version}/thin_parser"
else
  require "#{Thin::ROOT}/thin_parser"
end


if Thin.win?
  # Select proper binary under Windows
  major_ruby_version = RUBY_VERSION[/^(\d+\.\d+)/]
  require "#{Thin::ROOT}/thin_parser"
else
  require "#{Thin::ROOT}/thin_parser"
end

甚至更简单
require "#{Thin::ROOT}/thin_parser"

我不确定哪种解决方法更好,因为我不知道在不存在的目录中还需要什么文件。我也不知道 Thin.win 在哪里? fork 变得很重要。

我决定支持第一个解决方案。但两种方式都为我解决了问题。

此致,
蒂姆

关于ruby-on-rails-3 - 薄加载错误 : no such file to load thin_parser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5380826/

10-12 05:15