7
votes

Using OSX 10.8.4 on Macbook Pro with homebrew, xcode (with command line tools) and libffi.

I have installed rvm and ruby-1.9.3-p448 and have a gemset called omega.ecoop. There is a gemfile which lists gems that are required for this project. However, I can't get them installed, after running bundle check:

Bundler can't satisfy your Gemfile's dependencies.

This is correct as they are not installed. So I use:

bundle install

which produces the following:

Sams-MacBook-Pro:ecoop Sam$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using addressable (2.3.5) 
Using chunky_png (1.2.8) 
Using fssm (0.2.10) 
Using sass (3.2.10) 
Using compass (0.12.2) 
Using breakpoint (2.0.6) 
Using coderay (1.0.9) 
Using compass-blend-modes (0.0.2) 
Using color-schemer (0.2.5) 
Using compass-normalize (1.4.3) 
Using compass-rgbapng (0.2.1) 
Using compass-validator (3.0.1) 
Using css_parser (1.3.5) 
Using eventmachine (1.0.3) 
Using http_parser.rb (0.5.3) 
Using em-websocket (0.5.0) 
Installing ffi (1.9.0) 

All going well, until:

Installing ffi (1.9.0) 
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /Users/Sam/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb 
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile

make
mkdir -p "/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c"/libffi-x86_64; (if [ ! -f "/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c"/libffi-x86_64/Makefile ]; then echo "Configuring libffi for x86_64"; cd "/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c"/libffi-x86_64 && env CC=" gcc-4.6" CFLAGS="-arch x86_64 " LDFLAGS="-arch x86_64" "/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c/libffi"/configure --disable-static --with-pic=yes --disable-dependency-tracking --host=x86_64-apple-darwin > /dev/null; fi); env MACOSX_DEPLOYMENT_TARGET=10.4 make -C "/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c"/libffi-x86_64
Configuring libffi for x86_64
configure: WARNING: if you wanted to set the --build type, don't use --host.
    If a cross compiler is detected then cross compile mode will be used
configure: error: in `/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c/libffi-x86_64':
configure: error: C compiler cannot create executables
See `config.log' for more details
make[1]: *** No targets specified and no makefile found.  Stop.
make: *** ["/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c"/libffi-x86_64/.libs/libffi_convenience.a] Error 2


Gem files will remain installed in /Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0 for inspection.
Results logged to /Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.9.0/ext/ffi_c/gem_make.out

An error occurred while installing ffi (1.9.0), and Bundler cannot continue.
Make sure that `gem install ffi -v '1.9.0'` succeeds before bundling.

This command does not work either (gem install ffi -v '1.9.0'), I get the same error. I tried:

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

I have read:

can't setup ruby environment - installing fii gem error

Bundle update fails on ffi

Bundle update fails on ffi

Error installing ffi

gem install ffi -v '1.1.5' osx 10.8

Still no luck though. I followed this guide to set up RVM:

http://portertech.ca/2010/03/26/homebrew--rvm--awesome/

If this helps, ffi-1.0.11 installs without hitch, fff-1.9.0 will not install (http://rubygems.org/gems/ffi/versions).

/Users/Sam/.rvm/gems/[email protected]/gems/ffi-1.0.11 (no problem)

I wanted to use command line only (rather than jewelrybox GUI) to learn some new skills along the way but fairly stuck here. Any help would be appreciated, thanks.

EDIT

So I tried a different approach, I thought maybe it was the version of ruby that was not compatible:

rvm install 2.0.0

then create gemset this time using ruby 2.0.0

rvm use [email protected] --create

Check it's there and selected as the current gemset (ready to install some gems)

rvm gemset list

gemsets for ruby-2.0.0-p247 (found in /Users/Sam/.rvm/gems/ruby-2.0.0-p247)
(default)
global
=> omega.ecoop

Yep all good. Try and install

bundle install

Sams-MacBook-Pro:ecoop Sam$ bundle install
Fetching gem metadata from https://rubygems.org/..........
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Installing addressable (2.3.5) 
Installing chunky_png (1.2.8) 
Installing fssm (0.2.10) 
Installing sass (3.2.10) 
Installing compass (0.12.2) 
Installing breakpoint (2.0.6) 
Installing coderay (1.0.9) 
Installing compass-blend-modes (0.0.2) 
Installing color-schemer (0.2.5) 
Installing compass-normalize (1.4.3) 
Installing compass-rgbapng (0.2.1) 
Installing compass-validator (3.0.1) 
Installing css_parser (1.3.5) 
Installing eventmachine (1.0.3) 
Installing http_parser.rb (0.5.3) 
Installing em-websocket (0.5.0) 
Installing ffi (1.9.0)
Installing formatador (0.2.4) 
Installing rb-fsevent (0.9.3) 
Installing rb-inotify (0.9.1) 
Installing rb-kqueue (0.2.0) 
Installing listen (1.3.0) 
Installing lumberjack (1.0.4) 
Installing method_source (0.8.2) 
Installing slop (3.4.6) 
Installing pry (0.9.12.2) 
Installing thor (0.18.1) 
Installing guard (1.8.2) 
Installing guard-compass (0.0.8) 
Installing multi_json (1.7.9) 
Installing guard-livereload (1.4.0) 
Installing guard-shell (0.5.1) 
Installing oily_png (1.1.0) 
Installing rb-fchange (0.0.6) 
Installing sass-globbing (1.1.0) 
Installing sassy-strings (1.0.0) 
Installing singularitygs (1.1.2) 
Installing susy (1.0.9) 
Installing toolkit (1.3.7) 
Installing yajl-ruby (1.1.0) 
Using bundler (1.3.5) 
Your bundle is complete!

No problems with 'Installing ffi (1.9.0)' this time. Then I removed ruby 1.9.3 as I only use it for compass/sass/susy at the moment and if 2.0.0 works, so be it.

Sams-MacBook-Pro:~ Sam$ ruby -v
ruby 2.0.0p247 (2013-06-27 revision 41674) [x86_64-darwin12.3.0]
Sams-MacBook-Pro:~ Sam$ cd drupal/ecoop/sites/default/themes/ecoop/
ruby-1.9.3-p448 is not installed.

To install do: 'rvm install ruby-1.9.3-p448' <<<<<< no thanks

Sams-MacBook-Pro:ecoop Sam$ compass watch
>>> Change detected at 12:35:09 to: reset.scss
overwrite css/reset.css 
overwrite css/styles.css 
>>> Compass is watching for changes. Press Ctrl-C to Stop.

Works fine for my project now. Not sure of any consequences of using a newer version of ruby but lost enough time already, need to do some designing. Obviously this wont help someone who needs 1.9.3 so that original query of why ffi wouldn't install is yet to be addressed.

4
I am having the same issue on another machine. My one machine works fine, and the second machine is basically setup the same way. Really just wanted to stick to 1.9.3 because I'm attempting to replicate this onto other peoples machines. Even trying to just install the ffi gem on it's own results in the same "Failed to build native extensions". All xcode and command line tools updated.. homebrew updated, etc etc.humanaut

4 Answers

1
votes
Sams-MacBook-Pro:~ Sam$ cd drupal/ecoop/sites/default/themes/ecoop/
ruby-1.9.3-p448 is not installed.

To install do: 'rvm install ruby-1.9.3-p448' <<<<<< no thanks

Your .ruby-version file in that directory is still 1.9.3.

1
votes

My two cents- well, tuppenny.

I encountered this issue whilst trying to install an Omega 4 subtheme in Drupal when running bundle install before step 11 (which isn't mentioned in the guide... sigh.)

Omega has loads of placeholders called {{ THEME }} which are meant to be replaced by your custom theme name- and somehow (forgive me as I know nothing about Ruby!) it tried to use this weird placeholder with spaces in the gemfile.

It also tried to save the gems to the folder /home/ubuntu/.rvm/gems/ruby-1.9.3-p547@omega.{{ THEME }}/gems, which I knew looked suss.

To resolve it I did the following:

rvm use [email protected] --create
rvm gemset list

  gemsets for ruby-1.9.3-p547 (found in /home/ubuntu/.rvm/gems/ruby-1.9.3-p547)
     (default)
     global
  => omega.mysubtheme
     omega.{{ THEME }}

bundle install # This now works!

Hope this helps someone! The conclusion is that this is usually a problem with filename spaces somewhere- a lot of people have issues with OSX because it resolves the path to "Macintosh HD" which is an invalid name.

0
votes

You need to make sure you have gcc46 installed.

Try brew install gcc46 and then re-run bundle install.

0
votes

Usually when I have this issue it the solution is to make sure Xcode is updated.