2011-08-26 157 views
4

我刚开始学习Ruby,并试图在Macbook Air上使用RVM安装最新版本,并且它一直失败。我一定在做错事,因为我没有看到任何人在网上进行了大量搜索之后,在Ruby安装期间抱怨这个确切的错误。采取在Mac OS X上使用RVM安装Ruby 1.9.2时出现问题Snow Leopard

步骤:

Dima$ rvm install ruby-1.9.2-p290 
Installing Ruby from source to: /Users/Dima/.rvm/rubies/ruby-1.9.2-p290, this may take a while depending on your cpu(s)... 

ruby-1.9.2-p290 - #fetching 
ruby-1.9.2-p290 - #extracted to /Users/Dima/.rvm/src/ruby-1.9.2-p290 (already extracted) 
Fetching yaml-0.1.4.tar.gz to /Users/Dima/.rvm/archives 
Extracting yaml-0.1.4.tar.gz to /Users/Dima/.rvm/src 
Configuring yaml in /Users/Dima/.rvm/src/yaml-0.1.4. 
Compiling yaml in /Users/Dima/.rvm/src/yaml-0.1.4. 
Installing yaml to /Users/Dima/.rvm/usr 
ruby-1.9.2-p290 - #configuring 
ruby-1.9.2-p290 - #compiling 
ERROR: Error running 'make ', please read /Users/Dima/.rvm/log/ruby-1.9.2-p290/make.log 
ERROR: There has been an error while running make. Halting the installation. 

在此之后,作为错误信息的建议,我去了,在make.log里文件中查找:

compiling fiddle 
/usr/bin/gcc-4.2 -I. -I../../.ext/include/x86_64-darwin10.7.0 -I../.././include -I../.././ext/fiddle -DRUBY_EXTCONF_H=\"extconf.h\" -D_XOPEN_SOURCE -D_DARWIN_C_SOURCE -fno-common -O3 -ggdb -Wextra -Wno-unused-parameter -Wno-parentheses -Wpointer-arith -Wwrite-strings -Wno-missing-field-initializers -Wshorten-64-to-32 -Wno-long-long -fno-common -pipe -o closure.o -c closure.c 
In file included from closure.c:1: 
./fiddle.h:18:17: error: ffi.h: No such file or directory 
In file included from ./fiddle.h:71, 
       from closure.c:1: 
./conversions.h:24: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token 
closure.c:7: error: expected specifier-qualifier-list before ‘ffi_closure’ 
closure.c: In function ‘dealloc’: 
closure.c:22: error: ‘fiddle_closure’ has no member named ‘pcl’ 
closure.c:26: error: ‘fiddle_closure’ has no member named ‘cif’ 
closure.c:27: error: ‘fiddle_closure’ has no member named ‘argv’ 
closure.c:27: error: ‘fiddle_closure’ has no member named ‘argv’ 
closure.c: In function ‘closure_memsize’: 
closure.c:40: error: ‘fiddle_closure’ has no member named ‘cif’ 
closure.c:42: error: ‘fiddle_closure’ has no member named ‘argv’ 
closure.c:43: error: ‘ffi_closure’ undeclared (first use in this function) 
closure.c:43: error: (Each undeclared identifier is reported only once 
closure.c:43: error: for each function it appears in.) 
closure.c: At top level: 
closure.c:54: error: expected ‘)’ before ‘*’ token 
closure.c: In function ‘allocate’: 
closure.c:146: error: ‘fiddle_closure’ has no member named ‘pcl’ 
closure.c:146: error: ‘ffi_closure’ undeclared (first use in this function) 
closure.c:151: error: ‘fiddle_closure’ has no member named ‘cif’ 
closure.c:151: error: ‘ffi_cif’ undeclared (first use in this function) 
closure.c: In function ‘initialize’: 
closure.c:163: error: ‘ffi_cif’ undeclared (first use in this function) 
closure.c:163: error: ‘cif’ undeclared (first use in this function) 
closure.c:164: error: ‘ffi_closure’ undeclared (first use in this function) 
closure.c:164: error: ‘pcl’ undeclared (first use in this function) 
closure.c:165: error: ‘ffi_status’ undeclared (first use in this function) 
closure.c:165: error: expected ‘;’ before ‘result’ 
closure.c:169: error: ‘FFI_DEFAULT_ABI’ undeclared (first use in this function) 
closure.c:177: error: ‘fiddle_closure’ has no member named ‘argv’ 
closure.c:177: error: ‘ffi_type’ undeclared (first use in this function) 
closure.c:177: error: expected expression before ‘)’ token 
closure.c:181: error: ‘fiddle_closure’ has no member named ‘argv’ 
closure.c:183: error: ‘fiddle_closure’ has no member named ‘argv’ 
closure.c:188: error: ‘fiddle_closure’ has no member named ‘cif’ 
closure.c:189: error: ‘fiddle_closure’ has no member named ‘pcl’ 
closure.c:191: error: ‘result’ undeclared (first use in this function) 
closure.c:193: error: ‘fiddle_closure’ has no member named ‘argv’ 
closure.c:195: error: ‘FFI_OK’ undeclared (first use in this function) 
closure.c:199: error: ‘callback’ undeclared (first use in this function) 
make[1]: *** [closure.o] Error 1 
make: *** [mkmain.sh] Error 1 

我不知道如何准确解读这,我最初的直觉就是说我没有安装FFI,但是我从来没有在Ruby的任何安装步骤中看到这个要求。这是什么特定于我的电脑?

任何经验丰富的人的帮助将不胜感激。因为我不完全确定如何解决这个问题,所以提前抱歉。请让我知道什么额外的信息将有助于解决问题,并将其添加到帖子中。

感谢

回答

0

后的无奈小时,我结束了我的Macbook Air加载的Mac OS X狮子和Xcode的4,然后尝试重新运行rvm install ruby-1.9.2-p290和它的工作不一个问题。

1

当我开始与一些轨道上的编程我的MacBook Pro,我用RVM安装Ruby的时候得到了一些错误。不记得我得到的错误,但我必须安装Xcode,然后我可以用rvm安装ruby。

+0

是的,我相信RVM使用与Xcode一起安装的编译器来编译Ruby代码,但是我的Macbook Xcode Version 3.2.5(1760)上安装了Xcode。 –

2

Thoughtbot推出了一个很好的指南,以获得一个新的OSX安装轨安装。当然检查出来,因为它可能会帮助你:

http://robots.thoughtbot.com/post/8700977975/2011-rubyists-guide-to-a-mac-os-x-development

+0

我会检查出来,但我的MacBook Air不是一个新的安装,我有一些其他的开发环境/工具安装,所以我想弄清楚如何解决这个安装部分。我已经安装了与Snow Leopard一起安装的Ruby 1.8.7,我只是想在遇到此问题时升级到最新版本。 –

+0

啊,对不起,我误解了这个问题。 – jerhinesmith

相关问题