我正在使用Fedora 14,我安装并运行了MySQL和MySQL服务器5.1.42。 现在我尝试以root用户身份执行此操作:
gem install mysql
但是我收到了这个错误:
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
这里有什么问题?在安装ruby 1.8.7。和最新的rubygems 1.3.7。
答案 0 :(得分:748)
对于那些可能会被接受的答案混淆的人,就像我一样,你还需要安装ruby标题[ ruby-devel ]。
保存隐藏的文章是here。
这是经过修改的解决方案(注意我在Fedora 13上):
yum -y install gcc mysql-devel ruby-devel rubygems
gem install -y mysql -- --with-mysql-config=/usr/bin/mysql_config
对于使用Debian样式打包的Debian和其他发行版,ruby开发头文件通过以下方式安装:
sudo apt-get install ruby-dev
对于Ubuntu,ruby开发头文件由:
安装sudo apt-get install ruby-all-dev
如果您使用的是早期版本的ruby(例如2.2),那么您需要运行:
sudo apt-get install ruby2.2-dev
(2.2是你想要的Ruby版本)
答案 1 :(得分:91)
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
答案 2 :(得分:50)
对于在2015年阅读此内容的任何人:如果您碰巧安装了软件包ruby2.0
,则需要安装匹配的ruby2.0-dev
以获取相应的Ruby标头。 ruby2.1
和ruby2.2
等也是如此。例如:
$ sudo apt-get install ruby2.2-dev
答案 3 :(得分:24)
似乎
yum install ruby-devel
足以让我执行
gem install datamapper
之后。
您可能需要安装另一个软件包:
yum install gcc gcc-c++
能够构建原生扩展
答案 4 :(得分:8)
我找到了解决方案here。
# yum install mysql-devel gcc make
# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
答案 5 :(得分:8)
这篇文章对我有所帮助。非常感谢。
在Linux(Ubuntu 12.10)上我需要运行
sudo apt-get install ruby
sudo apt-get install rubygems
sudo apt-get install ruby-dev
才能成功运行
sudo gem install jekyll
答案 6 :(得分:5)
如果未正确安装xcode工具,MAC用户可能会遇到此问题。 以下是解决问题的命令。
xcode-select --install
答案 7 :(得分:4)
如果您安装了gem并且没有安装rails并且无法安装rails。然后安装ruby dev lib。
sudo apt-get install ruby-dev
它对我有用。我尝试过不同的解决方案。
答案 8 :(得分:2)
Red Hat,Fedora:
sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems
答案 9 :(得分:1)
我的初步解决方案是通过安装ruby-devel
,patch
和rubygems
来解决上述错误。
我的问题有点不同,因为 bcrypt 3.1.11 在Fedora 23上编译和安装时仍有问题。我需要额外的软件包。因此,在确保安装了上述内容后,我仍然遇到问题:
gcc: error: conftest.c: No such file or directory
gcc: error: /usr/lib/rpm/redhat/redhat-hardened-cc1: No such file or directory
从这里我必须做以下事情:
我确保我不缺少任何C编译器工具sudo dnf group install "C Development Tools and Libraries"
然后我运行sudo dnf install redhat-rpm-config
来解决上面列出的gcc问题。
您可以在Fedore Project找到此处的内容。您也可以找到其他需求的答案。
答案 10 :(得分:1)
对于那些仍然遇到问题的人,比如我(我使用的是Ubuntu 16.04),我必须输入以下命令才能获得一些像bcrypt,pg和其他安装的宝石。它们都与上述类似,只有一个。
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
这允许我安装像PG,bcrypt和recaptcha这样的宝石。
答案 11 :(得分:1)
sudo apt-get install ruby-dev
这个命令解决了我的问题!
答案 12 :(得分:0)
:
zypper in ruby-devel
对我有用:)
答案 13 :(得分:0)
安装redhat-rpm-config是必要的。我想它可以解决你的问题!
答案 14 :(得分:0)
这对我有用:
yum -y install gcc mysql-devel ruby-devel rubygems
答案 15 :(得分:0)
您需要安装以下软件包:
ruby-dev
gcc
libffi-dev
make
这是debian发行版的命令:
sudo apt install gcc ruby-dev rubygems libgmp-dev libgmp3-dev make
答案 16 :(得分:0)
您可能已经弄混了RVM。
尝试做:
\curl -sSL https://get.rvm.io | bash -s stable --rails
答案 17 :(得分:-1)
只是在我的PATH中添加ruby.h文件的路径 例如:
export PATH = $ PATH:/ usr / src / ruby-xxxxxx