2011-03-21 66 views
4

我已經安裝薄,並嘗試做thin start,它結了這個錯誤薄LoadError:沒有這樣的文件來加載thin_parser

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>' 

有人可以幫我請,謝謝提前

+0

什麼是在系統上安裝並在應用程序中使用的寶石? – 2011-03-25 09:06:50

+0

@Nazar對不起,我沒有回覆得很快,但既然bunter已經幫了我,你還想要寶石清單嗎? – Souloikj 2011-03-28 20:42:13

回答

5

的輸出表示所謂1.9

<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在哪裏?叉變得重要。

我決定採用第一種解決方案。但是這兩種方式都爲我解決了這個問題。

最好的問候,

+0

感謝您的幫助 – Souloikj 2011-03-28 20:40:49

0

運行rake db:migrate,當我碰到了同樣的錯誤(我懷疑瘦開始就會給我同樣的錯誤。)

我在亞馬遜Linux上運行(RPM與CentOS和Redhat非常相似)。我以前已經安裝過瘦(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下發現它正在尋找thin_parser.so在錯誤的地方。我能夠通過安裝這個符號鏈接來解決這個問題(我以root身份執行此操作,因爲我以根用戶身份進行瘦安裝)。顯然,調整路徑,安裝在你的瘦身版,其中:

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

噗!爲我修好了。

相關問題