gem install:无法构buildgem原生扩展(无法find头文件)

我使用的是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 

这里有什么问题? 在安装ruby1.8.7。 和最新的rubygems 1.3.7。

对于那些可能被接受的答案困惑的人,就像我一样,还需要安装ruby头文件[ ruby-devel ]。

保存我的皮的文章就在这里 。

这是修改后的解决scheme(请注意,我在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版本)

红帽,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 

对于2015年的读者来说:如果您碰巧安装了ruby2.0包,则需要安装匹配的ruby2.0-dev来获取适当的Ruby头文件。 ruby2.1ruby2.2等也是ruby2.2 。例如:

 $ sudo apt-get install ruby2.2-dev 

这似乎是

 yum install ruby-devel 

对我来说足够了

 gem install datamapper 

之后。

您可能需要安装其他软件包:

 yum install gcc gcc-c++ 

能够构build本地扩展

我在这里find了解决scheme。

 # yum install mysql-devel gcc make # gem install mysql -- --with-mysql-config=/usr/bin/mysql_config 

这个职位帮了我。 非常感谢。

在Linux(Ubuntu 12.10)我需要运行

 sudo apt-get install ruby sudo apt-get install rubygems sudo apt-get install ruby-dev 

我才能成功运行

 sudo gem install jekyll 

如果你有安装gem和ruby,不能安装导轨。 然后安装ruby dev lib。

 sudo apt-get install ruby-dev 

它适用于我。 我已经尝试了不同的解决scheme。

红帽,Fedora:

 sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems 

当xcode工具安装不正确时,MAC用户可能会遇到这个问题。 下面是摆脱这个问题的命令。

 xcode-select --install 
 sudo apt-get install ruby-dev 

这个命令为我解决了这个问题!

对于那些仍然遇到问题的人,就像我(我正在使用Ubuntu 16.04),为了得到像bcrypt,pg和其他安装的gem,我必须input以下命令。 除了一个以外,它们都与上述类似。

 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这样的gem。

我最初的解决scheme是通过安装ruby-develpatchrubygems来解决上述错误。

我的问题有点不同,因为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问题。

你可以在这里find一个关于Fedore项目的文章 。 您也可以find其他需求的答案。

在openSUSE中:

 zypper in ruby-devel 

对我工作:)

有必要安装redhat-rpm-config。 我想它解决了你的问题!

只要在我的path中添加ruby.h文件的path
例如:

export PATH = $ PATH:/ usr / src / ruby​​-xxxxxx