no such file to load -- ferret

xiaoxiao2026-06-14  10

好吧,这的确是一个十分诡异的错误,而且,似乎是win下才会有的。 原因是ferret_ext找不到,而你又确实安装了,说明这个ferret_ext.so(就是C编译完后以便ruby调用的库),不在ruby可以找到的lab路径。那么,照这个逻辑可以 把 [quote]C:\ruby\lib\ruby\gems\1.8\gems\ferret-0.11.5-x86-mswin32\ext[/quote] 下的 ferret_ext.so 文件拷贝到 如下目录 [quote]C:\ruby\lib\ruby\gems\1.8\gems\ferret-0.11.5-x86-mswin32\lib[/quote] 如下测试: #ferret_test.rb file:require 'rubygems'require 'ferret'include Ferretindex = Index::Index.new(:path => '/opt/search-index') [quote]>> require 'rubygems' => [] >> require 'ferret' => [] >> include Ferret => Object >> puts "ferret works!" ferret works! => nil >> index = Index::Index.new(:path => '/opt/search-index') => #<Ferret::Index::Index:0x481591c @qp=nil, @dir=#<Ferret::Store::FSDirectory:0x4814e04>, @default_field=:*, @reader=nil, @mon_owner=nil, @open=true, @close_di r=true, @id_field=:id, @writer=nil, @options={:path=>"/opt/search-index", :lock_retry_time=>2, :default_field=>:*, :dir=>#<Ferret::Store::FSDirectory:0x4814e04> , :analyzer=>#<Ferret::Analysis::StandardAnalyzer:0x4814918>}, @mon_waiting_queue=[], @key=nil, @searcher=nil, @default_input_field=:id, @mon_entering_queue=[], @auto_flush=false, @mon_count=0>[/quote] 然而,如果你是linux或者mac上遇到的类似问题 那么参考这些 [quote] I had a stock install of Mac OS X Tiger, without developer tools installed. When I did the "gem install ferret" I ignored the message that gcc and make could not be found. RubyGems gave the message that ferret was installed despite the fact that the C extensions were not compiled and installed. So I got the error "no such file to load -- ferret_ext" when I tried to run ferret. Here's what I did to get ferret to work: Found my Mac OS X Tiger install disk and opened the Xcode Tools folder. Clicked on the XcodeTools.mpkg. Started the install process and stopped before I clicked the "Upgrade" button. Instead clicked the "Customize" button and selected only "gcc 4.0" and the Software Development Kits "Mac OS X SDK" and "BSD SDK" (I'm not developing Mac apps so didn't want to crowd my disk with extra stuff I won't use). Then clicked "Upgrade." What you need gets installed as /usr/bin/gcc plus lots more in /usr/include. Now you can install ferret and it will compile the C extensions. First I removed the broken ferret I installed earlier: $ gem uninstall ferret I checked that I had gcc: $ which gcc /usr/bin/gcc If you can't find it, check your bash shell path environment with: $ env You should have something like "/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin" I checked for the SDK libraries: $ cd /usr/include $ ls -lag (should show lots of ".h" header files) Then back to my development directory and ran: $ sudo gem install ferret Select which gem to install for your platform (powerpc-darwin7.9.0) 1. ferret 0.10.13 (ruby) ... Building native extensions. This could take a while... ruby extconf.rb install ferret creating Makefile ... (lots of make cruft) make install ... make clean Successfully installed ferret-0.10.13 Installing ri documentation for ferret-0.10.13... Installing RDoc documentation for ferret-0.10.13... You can test ferret with this Ruby code in a file "ferret_test.rb" require 'rubygems'require 'ferret'include Ferretputs "ferret works!"Try it with:$ ruby ferret_test.rbferret works! I hope this helps someone else who might be in a similar situation, especially if they are googling for "no such file to load -- ferret_ext" or "Mac OS X gem install ferret" or even "installing gcc on mac os x". [/quote] 相关资源:敏捷开发V1.0.pptx
转载请注明原文地址: https://www.6miu.com/read-5050128.html

最新回复(0)