Reputation: 409
I am deploying my Rails application using Chef. While
gem install mysql
am getting hte following error,
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension.
/opt/chef/embedded/bin/ruby extconf.rb checking for mysql_ssl_set()... * 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/chef/embedded/bin/ruby --with-mysql-config --without-mysql-config /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:381:in
try_do': The compiler failed to generate an executable file. (RuntimeError) You have to install development tools first. from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:461:in
try_link0' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:476:intry_link' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:619:in
try_func' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:894:inblock in have_func' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:790:in
block in checking_for' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:284:inblock (2 levels) in postpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:in
open' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:284:inblock in postpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:254:in
open' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:280:inpostpone' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:789:in
checking_for' from /opt/chef/embedded/lib/ruby/1.9.1/mkmf.rb:893:inhave_func' from extconf.rb:45:in
'Gem files will remain installed in /var/www/project-name/releases/daf93f4783a7238e5a8198c1fd50e4e1de93f654/vendor/bundle/ruby/1.9.1/gems/mysql-2.9.1 for inspection. Results logged to /var/www/project-name/releases/daf93f4783a7238e5a8198c1fd50e4e1de93f654/vendor/bundle/ruby/1.9.1/gems/mysql-2.9.1/ext/mysql_api/gem_make.out An error occured while installing mysql (2.9.1), and Bundler cannot continue. Make sure that
gem install mysql -v '2.9.1'
succeeds before bundling.
I am using RHEL 6. I also have a separate cookbook for mysql installation. I tried installing Mysql manually using the yum command.
I tried
yum install mysql-devel and then run the gem install mysql
still not working. Can anyone help me out.
Thanks
Upvotes: 0
Views: 2088
Reputation: 867
It sounds like you don't have a compiler. On a debian/ubuntu system, you can get everything you need to compile and build packages with:
sudo apt-get install build-essential
On Fedora/Red Hat I think it should be:
sudo yum groupinstall "Development Tools"
Upvotes: 2
Reputation: 77961
Add the build-essentials cookbook to your runlist and configure it's "compiletime" attribute.
The following answer reports the same problem building the postgres gem
Upvotes: 1