2

I had installed the vagrant 1.7.2 on amazon EC2 linux instance. When i am trying to install the vagrant aws plugin by issuing this vagrant plugin install vagrant-aws command i am getting the following error,

Installing the 'vagrant-aws' plugin. This can take a few minutes...
Bundler, the underlying system Vagrant uses to install plugins,
reported an error. The error is shown below. These errors are usually
caused by misconfigured plugin installations or transient network
issues. The error from Bundler is:

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

Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.

    /opt/vagrant/embedded/bin/ruby extconf.rb
checking for ffi.h... *** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of necessary
libraries and/or headers.  Check the mkmf.log file for more details.  You may
need configuration options.

Provided configuration options:
        --with-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/opt/vagrant/embedded/bin/ruby
        --with-ffi_c-dir
        --without-ffi_c-dir
        --with-ffi_c-include
        --without-ffi_c-include=${ffi_c-dir}/include
        --with-ffi_c-lib
        --without-ffi_c-lib=${ffi_c-dir}/
        --with-libffi-config
        --without-libffi-config
        --with-pkg-config
        --without-pkg-config
/opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:434:in `try_do': The compiler failed to generate an executable file. (RuntimeError)
You have to install development tools first.
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:565:in `try_cpp'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:1044:in `block in have_header'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:895:in `block in checking_for'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:340:in `block (2 levels) in postpone'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:310:in `open'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:340:in `block in postpone'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:310:in `open'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:336:in `postpone'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:894:in `checking_for'
        from /opt/vagrant/embedded/lib/ruby/2.0.0/mkmf.rb:1043:in `have_header'
        from extconf.rb:16:in `<main>'


Gem files will remain installed in /home/ec2-user/.vagrant.d/gems/gems/ffi-1.9.8 for inspection.
Results logged to /home/ec2-user/.vagrant.d/gems/gems/ffi-1.9.8/ext/ffi_c/gem_make.out

Please help me to resolve this issue.

TIA.,

lalithkumar
  • 3,480
  • 4
  • 24
  • 40
DIVA
  • 549
  • 2
  • 11
  • 34

1 Answers1

5

You need a GCC compiler installed, and probably some supporting libraries and tools.

For Amazon Linux, RHEL, CentOS, or Fedora, try

sudo yum groupinstall 'Development Tools'

For Debian or Ubuntu, try

sudo apt-get install build-essential
OtherDevOpsGene
  • 7,302
  • 2
  • 31
  • 46
  • @DIVA I'm not sure if you mean my solution worked or not. If it did, please accept my answer so others see it was a correct solution. If not, please post what worked. – OtherDevOpsGene Apr 03 '15 at 13:04
  • You are correct. But, what i did to resolve the issue is applied this command to install the required development tools on the created AWS EC2 instance **sudo yum install -y gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel** Then, i issued the following command to install ruby ffi package. **sudo gem install ffi --version 1.9.8** – DIVA Apr 03 '15 at 13:19