4

シンをインストールして実行しようとする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>'

誰かが私を助けてくれますか、事前に感謝します

4

2 に答える 2

5

1.9出力はieという名前のディレクトリを示します

<ruby_install_dir>/lib/ruby/gems/1.9.1/gems/thin-1.2.8-x86-mingw32/lib/1.9/

注: 私のシン バージョンは 1.2.10 です。以下では、システムに表示されるパスを使用します。

何らかの理由で、このディレクトリにはシン ジェムが付属していません。しかし、というファイル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 がどこにあるのかもわかりません。フォークが重要になります。

私は最初の解決策を支持することにしました。しかし、どちらの方法でも問題は解決しました。

敬具、
ティム

于 2011-03-25T13:52:08.610 に答える