【问题标题】:Running into errors installing ffi gem on OS X Mountain Lion在 OS X Mountain Lion 上安装 ffi gem 时遇到错误
【发布时间】:2012-08-13 16:37:32
【问题描述】:

我正在尝试在我的 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

感谢任何帮助。

【问题讨论】:

  • 你可以加入/chetanshenoy.rvm/rubies/ruby-1.9.3-p194/config - 最好使用gist,因为这个文件很大。
  • @mpapis 这是配置:https://gist.github.com/3342924
  • 这就是我的想法——这可能是ffi 安装方式的错误,ruby 没有带空格的路径记录,您是否尝试过ffi 的最新或预版本?
  • 是的,我认为这是一个错误。不幸的是,Octopress 的依赖项之一需要 ffi 的特定版本。我会尝试想出一个解决方法。谢谢,如果您有任何其他想法,请告诉我。
  • 您对$HOME 中的空格使用“修复”,您可以尝试以其他方式修复它:sudo rm -rf /chetanshenoy.rvm && sudo mv "/Volumes/Secondary - HDD/Users/chetanshenoy/.rvm" /chetanshenoy.rvm

标签: ruby rubygems gem rvm ffi


【解决方案1】:

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

要让它编译你需要去掉空格,有几种方法:

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

【讨论】:

  • 感谢您的帮助。我最终只是编辑了 gem 并更新了 libffi Makefile。我最终需要弄清楚如何在不搞砸任何设置的情况下移动rvm
【解决方案2】:

正如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

【讨论】:

    猜你喜欢
    • 2012-08-10
    • 1970-01-01
    • 2023-04-02
    • 2012-10-21
    • 1970-01-01
    • 2013-01-02
    • 2013-09-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多