2010-11-29 119 views
300

我使用的是Fedora 14,并且我安装并运行了MySQL和MySQL服务器5.1.42。 现在我试图这样做,因为root用户:gem install:无法构建gem原生扩展(无法找到头文件)

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 

这里有什么错?在安装红宝石1.8.7。和最新的rubygems 1.3.7。

+0

只是一个快速猜测:你有MySQL的开发文件头 – DrColossos 2010-11-29 14:06:51

+0

我怎样才能得到这些开发文件头? – Tim 2010-11-29 14:12:47

+0

我在Ubuntu做了以下操作:apt-get install ruby​​-dev ruby​​gems gem install mysql -with-mysql-config =/usr/bin/mysql_config所有工作正常。 – 2012-05-29 16:51:48

回答

641

对于那些谁可以被接受的答案所迷惑,因为我是,你还需要安装红宝石头部[红宝石-devel的

保存我的皮的文章是here

这是修改后的解决方案(请注意,我在Fedora 13):

sudo apt-get install ruby-dev 

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-all-dev 

为Ubuntu的Ruby开发报头被安装如果您在使用Ruby的早期版本(如2.2),那么你需要运行:

sudo apt-get install ruby2.2-dev 

(其中2.2是你想要的Ruby版本)

84

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

这是一个吗? mysql-devel.i686:用于开发MySQL应用程序的文件 – Tim 2010-11-29 14:15:07

+0

我敢打赌是的。试一试。 – Nowaker 2010-11-29 14:20:34

+0

不,不幸的是,安装mysql-devel后不幸的是同样的错误。 – Tim 2010-11-29 14:24:38

8

我找到了解决办法here

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

似乎

yum install ruby-devel 

,就足以让我表演

gem install datamapper 

之后。

这是可能的,你需要安装另一个软件包:

yum install gcc gcc-c++ 

能够建立原生扩展

-1

我想补充路径红宝石。在我的道路
.h文件,例如:

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

8

这篇文章帮助了我。非常感谢。

在Linux(Ubuntu的12.10)我需要运行

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

我能成功地在2015年运行

sudo gem install jekyll 
49

对于任何人阅读此之前:如果你碰巧安装包ruby2.0,你需要安装匹配的ruby2.0-dev以获取适当的Ruby标头。这同样适用于ruby2.1ruby2.2等。例如:

$ sudo apt-get install ruby2.2-dev 
2

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

xcode-select --install 
2

红帽,Fedora的:

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

我最初的解决方案是通过安装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问题。

你可以在这里找到一个写在Fedore Project。您也可以找到其他需求的答案。

0

在openSUSE的:

zypper in ruby-devel 

作品给我:)

4

如果您安装了宝石和红宝石和无法安装导轨。然后安装ruby dev lib。

sudo apt-get install ruby-dev 

它适用于我。我尝试了不同的解决方案。

1
sudo apt-get install ruby-dev 

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

0

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

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。

相关问题