【问题标题】:Thin LoadError: no such file to load thin_parserThin LoadError: no such file to load thin_parser
【发布时间】:2026-01-11 17:15:02
【问题描述】:

我已经安装了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>'

谁能帮帮我,在此先感谢

【问题讨论】:

  • 系统上安装并在您的应用程序中使用的 gem 是什么?
  • @Nazar 抱歉,我回复的速度不够快,但是既然 bunter 已经帮助了我,你还想要宝石列表吗?

标签: ruby-on-rails-3 thin


【解决方案1】:

输出表示一个名为1.9的目录,即

&lt;ruby_install_dir&gt;/lib/ruby/gems/1.9.1/gems/thin-1.2.8-x86-mingw32/lib/1.9/

注意:我的瘦版本是 1.2.10。在下文中,我将使用系统上显示的路径。

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

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

您也可以编辑文件&lt;ruby_install_dir&gt;/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 变得很重要。

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

最好的问候,
蒂姆

【讨论】:

    【解决方案2】:

    我在运行rake db:migrate 时遇到了同样的错误(我怀疑thin start 也会给我同样的错误。)

    我在 Amazon Linux 上运行(基于 rpm,与 CentOS 和 Redhat 非常相似)。我以前以 root 身份安装了瘦(gem install thin)。尽管它可能与您的情况无关,但为了完整起见,我还使用以下方法安装了 eventmachine:

    gem install eventmachine --platform=ruby
    

    这是我得到的错误:

    % rake db:migrate
    rake aborted!
    LoadError: cannot load such file -- thin_parser
    /home/rails/.gem/ruby/1.9.1/gems/activesupport-3.2.8/lib/active_support/dependencies.rb:251:in `require'
    etc. etc.
    

    根据上面的信息,我在strace下运行rake,发现它在找错地方了thin_parser.so。我能够通过安装这个符号链接来解决这个问题(我以 root 身份执行此操作,因为我以 root 身份安装了 thin)。显然,调整你的瘦版本的安装路径:

     cd /usr/local/share/gems1.9/gems/thin-1.6.3/lib
     ln -s ../ext/thin_parser/thin_parser.so .
    

    噗!这已经帮我解决了。

    【讨论】:

      最近更新 更多