尝试安装ffi宝石时出现错误:
~ - 16:54>gem i ffi Building native extensions. This could take a while... ERROR: Error installing ffi: ERROR: Failed to build gem native extension. rake RUBYARCHDIR=/home/mdemare/.rvm/gems/ruby-1.9.2-p136/gems/ffi-1.0.6/lib RUBYLIBDIR=/home/mdemare/.rvm/gems/ruby-1.9.2-p136/gems/ffi-1.0.6/lib /home/mdemare/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/site_ruby/1.9.1/rubygems.rb:370:in `bin_path': can't find gem rake ([">= 0"]) with executable rake (Gem::GemNotFoundException) from /home/mdemare/.rvm/gems/ruby-1.9.2-p136/bin/rake:19:in `<main>' Gem files will remain installed in /home/mdemare/.rvm/gems/ruby-1.9.2-p136/gems/ffi-1.0.6 for inspection. Results logged to /home/mdemare/.rvm/gems/ruby-1.9.2-p136/gems/ffi-1.0.6/gen/gem_make.out
在使用本机扩展安装宝石时,我经常出现各种错误,所以我认为我的Ubuntu安装有一些破坏,但我不知道什么.我会发布您需要的任何信息来诊断问题.
编辑:当我cd到ffi宝石(在第二行但最后一行提到),并在第6行运行rake行,我得到“无法找到RubyGem rake-compiler”.
宝石我耙编译器,再次运行耙机,我得到这个:
configure: error: source directory already configured; run "make distclean" there first make: *** [/home/mdemare/.rvm/gems/ruby-1.9.2-p136/gems/ffi-1.0.6/build/x86_64-linux/ffi_c/1.9.2/libffi/.libs/libffi_convenience.a] Error 1 rake aborted! Command Failed with status (2): [make...]
更新:
这些是我的耙子gemspecs:
~ - 10:59>find ~/.rvm/ -name 'rake-0.8.7.gemspec' ~/.rvm/gems/ruby-1.9.2-p136/specifications/rake-0.8.7.gemspec ~/.rvm/gems/ruby-1.9.2-p136@global/specifications/rake-0.8.7.gemspec ~/.rvm/rubies/ruby-1.9.2-p136/lib/ruby/gems/1.9.1/specifications/rake-0.8.7.gemspec
最后一个是宝石看起来,但是gemspec与第一个不同,不包括可执行文件.复制长的一个并不完全解决问题 – 我得到一个没有找到rake可执行文件的文件.
在波士顿黑客日,当我试图安装Vagrant(FFI是一个依赖)的时候,这让我感到很多恶化.我最终浪费了很多时间,我切换机器来解决这个问题.
事实之后,我发现了一个恶作剧(虽然我确定有一个更好的解决方案).错误信息抱怨的文件
~/.rvm/gems/ruby-1.9.2-p180/bin/rake
不同于其他类似的副本,因为它缺少路径设置的东西在头上,所以我从其中一个文件复制这些行:
[通过@ danv在下面的答案进行泛型化.感谢改进!]
ENV['GEM_HOME']=ENV['GEM_HOME'] || '~/.rvm/gems/ruby-1.9.2-p180' ENV['GEM_PATH']=ENV['GEM_PATH'] || '~/.rvm/gems/ruby-1.9.2-p180:~/.rvm/gems/ruby-1.9.2-p180@global' ENV['PATH']='~/.rvm/gems/ruby-1.9.2-p180/bin:~/.rvm/gems/ruby-1.9.2-p180@global/bin:~/.rvm/rubies/ruby-1.9.2-p180/bin:' + ENV['PATH']
这固定了我.这是一个新的Ubuntu 10.10安装,没有默认的Ruby安装(可能是问题的一部分)和使用RVM安装的Ruby 1.9.2.许多其他宝石安装正常,包括需要本地编译的宝石,所以问题是FFI特有的.