【问题标题】:gem install: Failed to build gem native extension (can't find header files)gem install:无法构建 gem 原生扩展(找不到头文件)
【发布时间】: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 中。以及最新的 ruby​​gems 1.3.7。

【问题讨论】:

  • 只是一个快速的猜测:你有 MySQL 的开发文件头
  • 如何获取这些开发文件头?
  • 我在 Ubuntu 中做了以下操作: apt-get install ruby​​-dev ruby​​gems gem install mysql -- with-mysql-config=/usr/bin/mysql_config 一切正常。

标签: mysql ruby rubygems


【解决方案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 让我知道它是否有效。
  • 我刚刚遇到了这个问题:stackoverflow.com/questions/6297751/…很好的解决方案!
  • 你说的是必需的,但修复有问题的错误消息需要 ruby​​-devel。
  • RedHat 系统上的 BTW 是 ruby-devel
【解决方案3】:

对于 2015 年阅读本文的任何人:如果您碰巧安装了包 ruby2.0,则需要安装匹配的 ruby2.0-dev 以获得适当的 Ruby 标头。 ruby2.1ruby2.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-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 上找到一篇文章。您还可以找到其他需求的答案。

          【讨论】:

            【解决方案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

                        【讨论】:

                          猜你喜欢
                          • 2013-06-27
                          • 1970-01-01
                          • 2021-01-12
                          • 2015-07-20
                          • 2015-06-18
                          • 2011-05-27
                          • 2010-09-07
                          • 2013-07-20
                          相关资源
                          最近更新 更多