gem install:无法构建 gem 原生扩展(找不到头文件)
Posted
技术标签:
【中文标题】gem install:无法构建 gem 原生扩展(找不到头文件)【英文标题】:gem install: Failed to build gem native extension (can't find header files) 【发布时间】:2011-05-17 07:24:02 【问题描述】:我正在使用 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。
【问题讨论】:
只是一个快速的猜测:你有 MySQL 的开发文件头 如何获取这些开发文件头? 我在 Ubuntu 中做了以下操作: apt-get install ruby-dev rubygems gem install mysql -- with-mysql-config=/usr/bin/mysql_config 一切正常。 【参考方案1】:对于那些可能对接受的答案感到困惑的人,就像我一样,您还需要安装 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 版本)
【讨论】:
@NoBugs 感谢您提供更多信息 :) 当我在尝试使用 ruby on rails 创建应用程序时遇到问题时,此方法有效。它抱怨它如何无法安装 json 并且 bundler 无法继续。安装 ruby-devel 有效。 除了上面@NoBugs 发布的 ruby-dev,我还需要 Ubuntu (12.04) 上的 libmysqlcient-dev。 (或者,请参见下面 Damian Nowak 的 Debian/Ubuntu 回答。) 当我在安装 jekyll 时遇到问题时在 RHEL6 上为我工作。 这帮助我安装了 fpm,可能有助于安装任何基于 ruby 的软件。我用yum -y install gcc ruby-devel rubygems
。【参考方案2】:
红帽、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
【讨论】:
是这个吗? mysql-devel.i686 : MySQL 应用程序开发文件 肯定需要mysql-devel。问题是除此之外还需要什么。也许试试这个:fedora-tunisia.org/?q=node/44 让我知道它是否有效。 我刚刚遇到了这个问题:***.com/questions/6297751/…很好的解决方案! 你说的是必需的,但修复有问题的错误消息需要 ruby-devel。 RedHat 系统上的 BTW 是ruby-devel
。【参考方案3】:
对于 2015 年阅读本文的任何人:如果您碰巧安装了包 ruby2.0
,则需要安装匹配的 ruby2.0-dev
以获得适当的 Ruby 标头。 ruby2.1
和 ruby2.2
等也是如此。例如:
$ sudo apt-get install ruby2.2-dev
【讨论】:
在 Fedora 22 上:sudo dnf install ruby-devel
谢谢!红宝石有时很奇怪。
Ruby 2.3 也是如此。【参考方案4】:
看来
yum install ruby-devel
足够我表演了
gem install datamapper
之后。
您可能需要安装其他软件包:
yum install gcc gcc-c++
能够构建原生扩展
【讨论】:
我收到了一个非常奇怪的错误,没有明确的消息,这是因为没有安装 gcc 包。 :(这篇文章让我想起了这个基本步骤。;P【参考方案5】:当 xcode 工具未正确安装时,MAC 用户可能会遇到此问题。 下面是解决这个问题的命令。
xcode-select --install
【讨论】:
是的,这就是问题所在。非常感谢! 然后这个sudo gem install -n /usr/local/bin cocoapods
thumbsup【参考方案6】:
我找到了解决方案here。
# yum install mysql-devel gcc make
# gem install mysql -- --with-mysql-config=/usr/bin/mysql_config
【讨论】:
【参考方案7】:这篇文章帮助了我。非常感谢。
在 Linux (Ubuntu 12.10) 上我需要运行
sudo apt-get install ruby
sudo apt-get install rubygems
sudo apt-get install ruby-dev
在我成功运行之前
sudo gem install jekyll
【讨论】:
【参考方案8】:如果您安装了 gem 和 ruby,但无法安装 rails,请安装 ruby dev lib。
sudo apt-get install ruby-dev
它对我有用。我尝试了不同的解决方案。
【讨论】:
我有 Ubuntu 16.04LTS。我认为,其他以前的版本也是如此。【参考方案9】:红帽、Fedora:
sudo dnf -y install gcc-c++ redhat-rpm-config ruby-devel gcc mysql-devel rubygems
【讨论】:
【参考方案10】:对于那些仍然遇到问题的人,比如我(我使用的是 Ubuntu 16.04),我必须输入以下命令才能安装一些 gem,如 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 这样的 gem。
【讨论】:
【参考方案11】:我最初的解决方案是通过安装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 上找到一篇文章。您还可以找到其他需求的答案。
【讨论】:
【参考方案12】:sudo apt-get install ruby-dev
这个命令为我解决了这个问题!
【讨论】:
【参考方案13】:您需要安装以下软件包:
ruby 开发
gcc
libffi-dev
制作
这是 debian 发行版的命令:
sudo apt install gcc ruby-dev rubygems libgmp-dev libgmp3-dev make
【讨论】:
【参考方案14】:在 openSUSE 中:
zypper in ruby-devel
对我有用:)
【讨论】:
【参考方案15】:需要安装redhat-rpm-config 到。我想它可以解决你的问题!
【讨论】:
【参考方案16】:这对我有用:
yum -y install gcc mysql-devel ruby-devel rubygems
【讨论】:
【参考方案17】:你可能搞砸了 RVM。
尝试做:
\curl -sSL https://get.rvm.io | bash -s stable --rails
【讨论】:
【参考方案18】:只是在我的 PATH 中添加 ruby.h 文件的路径 例如:
导出 PATH=$PATH:/usr/src/ruby-xxxxxx
【讨论】:
以上是关于gem install:无法构建 gem 原生扩展(找不到头文件)的主要内容,如果未能解决你的问题,请参考以下文章
gem install:无法构建 gem 原生扩展(找不到头文件)
在 OSX 上安装 rmagick gem 时出错 - 错误:无法构建 gem 原生扩展
gem install rmagick -v 2.13.1 错误无法在 Mac OS 10.9.1 上构建 gem 本机扩展