首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Thin LoadError:没有要加载thin_parser的此类文件

Thin LoadError:没有要加载thin_parser的此类文件
EN

Stack Overflow用户
提问于 2011-03-22 00:47:26
回答 2查看 5.8K关注 0票数 4

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

代码语言:javascript
复制
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>'

有没有人能帮帮我,提前谢谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-03-25 21:52:09

输出表示名为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没有提供这个目录。但是父目录<ruby_install_dir>/lib/ruby/gems/1.9.1/gems/thin-1.2.10/lib/中有一个名为thin_parser.so的文件

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

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

代码语言:javascript
复制
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

代码语言:javascript
复制
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

或者更简单

代码语言:javascript
复制
require "#{Thin::ROOT}/thin_parser"

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

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

诚挚的问候,

时间

票数 5
EN

Stack Overflow用户

发布于 2015-03-08 11:11:29

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

我在Amazon Linux上运行(基于rpm,所以类似于CentOS和Redhat)。我之前将thin安装为root (gem install thin)。尽管它可能与您的情况无关,但为了完整起见,我还使用以下命令安装了eventmachine:

代码语言:javascript
复制
gem install eventmachine --platform=ruby

下面是我得到的错误:

代码语言:javascript
复制
% 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 )。显然,请将路径调整到您的thin版本的安装位置:

代码语言:javascript
复制
 cd /usr/local/share/gems1.9/gems/thin-1.6.3/lib
 ln -s ../ext/thin_parser/thin_parser.so .

哇塞!帮我修好了。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5380826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档