在OS X Mountain Lion上安装ffi gem时遇到错误

时间:2012-08-13 16:37:32

标签: ruby rubygems gem rvm ffi

我正在尝试在我的OS X Mountain Lion上安装ffi gem(因此我可以运行Octopress)并且遇到错误。

运行gem install install ffi -v '1.0.11'会得到以下输出:

/chetanshenoy.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include... no
checking for rb_thread_blocking_region()... yes
checking for ruby_native_thread_p()... yes
checking for rb_thread_call_with_gvl()... yes
creating extconf.h
creating Makefile

make
Configuring libffi
/Volumes/Secondary - HDD/Users/chetanshenoy/.rvm/gems/ruby-1.9.3-p194/gems/ffi-1.0.11/ext/ffi_c/libffi/configure: line 642: test: too many arguments
/Volumes/Secondary - HDD/Users/chetanshenoy/.rvm/gems/ruby-1.9.3-p194/gems/ffi-1.0.11/ext/ffi_c/libffi/configure: line 642: test: too many arguments
configure: WARNING: Libtool does not cope well with whitespace in `pwd`
cd "/Volumes/Secondary - HDD/Users/chetanshenoy/.rvm/gems/ruby-1.9.3-p194/gems/ffi-1.0.11/ext/ffi_c/libffi" && make
make "AR_FLAGS=" "CC_FOR_BUILD=" "CFLAGS=" "CXXFLAGS=" "CFLAGS_FOR_BUILD=" "CFLAGS_FOR_TARGET=" "INSTALL=/usr/bin/install -c" "INSTALL_DATA=/usr/bin/install -c -m 644" "INSTALL_PROGRAM=/usr/bin/install -c" "INSTALL_SCRIPT=/usr/bin/install -c" "JC1FLAGS=" "LDFLAGS=" "LIBCFLAGS=" "LIBCFLAGS_FOR_TARGET=" "MAKE=make" "MAKEINFO=/bin/sh "/Volumes/Secondary - HDD/Users/chetanshenoy/.rvm/gems/ruby-1.9.3-p194/gems/ffi-1.0.11/ext/ffi_c/libffi/missing" --run makeinfo " "PICFLAG=" "PICFLAG_FOR_TARGET=" "RUNTESTFLAGS=" "SHELL=/bin/sh" "exec_prefix=/usr/local" "infodir=/usr/local/share/info" "libdir=/usr/local/lib" "prefix=/usr/local" "AR=ar" "AS=as" "CC=gcc-4.2" "CXX=c++" "LD=ld" "NM=/usr/bin/nm" "RANLIB=ranlib" "DESTDIR=" all-recursive
make[2]: *** No rule to make target `HDD/Users/chetanshenoy/.rvm/gems/ruby-1.9.3-p194/gems/ffi-1.0.11/ext/ffi_c/libffi/missing --run makeinfo '.  Stop.
make[1]: *** [all] Error 2
make: *** ["/Volumes/Secondary] Error 2

感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

看起来ffi gem也不喜欢路径中的空格,因为你在config已经检查过它不是使用这条路径的ruby,必须是编译gem的过程中的东西

要使它编译你需要摆脱空格,有几种方法:

  1. 在没有空格的路径中重新安装rvm,首先您需要更改rvm_path中的~/.rvmrc位置,这是“安全”的选择,
  2. 将rvm直接移动到rvm_path指向的路径 - sudo rm -rf /chetanshenoy.rvm && sudo mv "/Volumes/Secondary - HDD/Users/chetanshenoy/.rvm" /chetanshenoy.rvm - 这应该可以工作,因为ruby没有主目录的记录,但是不能确定带有空格的路径是否保存在任何路径中位置 - 如果出现问题,请使用解决方案1。

答案 1 :(得分:1)

正如Issue with installing ImageMagick and rmagick on Mountain Lion中所述,ffi似乎已配置为查找“gcc-4.2”,因此,一旦我更新了Apple command line tools(我可能需要或可能不需要这样做),我创建了一个符号链接,使ffi安装配置更加快乐:

sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2