Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

gem install: Failed to build gem native extension (can't find header files)

I am using Fedora 14 and I have MySQL and MySQL server 5.1.42 installed and running. Now I tried to do this as root user:

gem install mysql 

But I get this error:

Building native extensions.  This could take a while... ERROR:  Error installing mysql:     ERROR: Failed to build gem native extension.  /usr/bin/ruby extconf.rb mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h   Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1 for inspection. Results logged to /usr/lib/ruby/gems/1.8/gems/mysql-2.8.1/ext/mysql_api/gem_make.out 

What's wrong here? In installed ruby 1.8.7. and the latest rubygems 1.3.7.

like image 649
Tim Avatar asked Nov 29 '10 13:11

Tim


2 Answers

For those who may be confused by the accepted answer, as I was, you also need to have the ruby headers installed [ruby-devel].

The article that saved my hide is here.

And this is the revised solution (note that I'm on Fedora 13):

yum -y install gcc mysql-devel ruby-devel rubygems gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config 

For Debian, and other distributions using Debian style packaging the ruby development headers are installed by:

sudo apt-get install ruby-dev 

For Ubuntu the ruby development headers are installed by:

sudo apt-get install ruby-all-dev 

If you are using a earlier version of ruby (such as 2.2), then you will need to run:

sudo apt-get install ruby2.2-dev 

(where 2.2 is your desired Ruby version)

like image 54
Brian Lacy Avatar answered Sep 21 '22 13:09

Brian Lacy


Red Hat, Fedora:

yum -y install gcc mysql-devel ruby-devel rubygems gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config 

Debian, Ubuntu:

apt-get install libmysqlclient-dev ruby-dev gem install mysql 

Arch Linux:

pacman -S libmariadbclient gem install mysql 
like image 31
Nowaker Avatar answered Sep 20 '22 13:09

Nowaker