title: Problem installing Ruby 1.9.2 using RVM on Mac OS X Snow Leopard
body: <p>I just started learning Ruby and was trying to install the latest version using RVM on a Macbook Air and it keeps failing. I must be doing something wrong since i don't see anyone else complaining about this exact error during Ruby installation after having done extensive searching online.</p>
  
  <p>Steps taken:</p>
  
  <pre><code>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.
  </code></pre>
  
  <p>After this, as the error message suggested, i went and looked in the make.log file:</p>
  
  <pre><code>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
  </code></pre>
  
  <p>I am not sure how to exactly decipher this, my initial instinct would be to say I don't have FFI installed, but i never saw this requirement in any of the intallation steps for Ruby. Is this something specific to my computer?</p>
  
  <p>Any help from someone experienced with this would be greatly appreciated. Apologies ahead of time for any missing pieces in the post, since I'm not entirely sure how to trouble shoot this. Please let me know what additional information would be helpful to trouble shoot and I'll add it to the post.</p>
  
  <p>Thanks</p>