可以将文章内容翻译成中文,广告屏蔽插件可能会导致该功能失效(如失效,请关闭广告屏蔽插件后再试):
问题:
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.
回答1:
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)
回答2:
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
回答3:
For anyone reading this in 2015: if you happened to install the package ruby2.0, you need to install the matching ruby2.0-dev to get the appropriate Ruby headers. The same goes for ruby2.1 and ruby2.2, etc. For example:
$ sudo apt-get install ruby2.2-dev
回答4:
it seems that the
yum install ruby-devel
was enough for me to perform
gem install datamapper
afterwards.
It's possible that you will need to install another packages:
yum install gcc gcc-c++
to be able to build native extensions
回答5:
I found the solution here.
# yum install mysql-devel gcc make # gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
回答6:
This post helped me. Thanks a lot.
On Linux (Ubuntu 12.10) I needed to run
sudo apt-get install ruby sudo apt-get install rubygems sudo apt-get install ruby-dev
before I could succesfully run
sudo gem install jekyll
回答7:
If you have gem installed and ruby and not able to install rails. Then install ruby dev lib.
sudo apt-get install ruby-dev
It works for me. I have tried the different solution.
回答8:
MAC users may face this issue when xcode tools are not installed properly. Below is the command to get rid of the issue.
xcode-select --install
回答9:
Red Hat, Fedora:
sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems
回答10:
sudo apt-get install ruby-dev
This command solved the problem for me!
回答11:
For those that are still experiencing problems, like I have(I am using Ubuntu 16.04), I had to put in the following commands in order to get some gems like bcrypt, pg, and others installed. They are all similar to the ones above except for one.
sudo apt-get install ruby-dev -y sudo apt-get install libpq-dev -y sudo apt-get install libmysqlclient-dev sudo apt-get install build-essential patch -y
This allowed me to install gems like, PG, bcrypt, and recaptcha.
回答12:
My initial solution was to resolve the above errors by installing ruby-devel, patch and rubygems.
My issue was a bit different as bcrypt 3.1.11 still had issues compiling and installing on Fedora 23. I needed additional packages. So after ensuring I had the above installed, I was still having issues:
gcc: error: conftest.c: No such file or directory
gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
From here I had to do the following:
You can find a write up here on Fedore Project. You may also find answers to other needs as well.
回答13:
in openSUSE:
zypper in ruby-devel
Works to me :)
回答14:
It's necessary to install redhat-rpm-config to. I guess it solve your problem!
回答15:
Just to add path to ruby.h file in my PATH
for example:
export PATH=$PATH:/usr/src/ruby-xxxxxx