【问题标题】:How to install ruby-debug when needing necessary libraries and/or headers需要必要的库和/或头文件时如何安装 ruby​​-debug
【发布时间】:2013-10-31 02:21:25
【问题描述】:

我的 Rails 是 3.2.1.4,Ruby 是 1.9.3p448

我安装ruby-debug时出错:

Building native extensions.  This could take a while...
ERROR:  Error installing ruby-debug:
        ERROR: Failed to build gem native extension.

    /home/hxh/.rvm/rubies/ruby-1.9.3-p448/bin/ruby extconf.rb
Can't handle 1.9.x yet
*** extconf.rb failed ***
Could not create Makefile due to some reason, probably lack of
necessary libraries and/or headers.  Check the mkmf.log file for more
details.  You may need configuration options.

Provided configuration options:
        --with-opt-dir
        --without-opt-dir
        --with-opt-include
        --without-opt-include=${opt-dir}/include
        --with-opt-lib
        --without-opt-lib=${opt-dir}/lib
        --with-make-prog
        --without-make-prog
        --srcdir=.
        --curdir
        --ruby=/home/hxh/.rvm/rubies/ruby-1.9.3-p448/bin/ruby


Gem files will remain installed in /home/hxh/.rvm/gems/ruby-1.9.3-p448/gems/linecache-0.46 for inspection.
Results logged to /home/hxh/.rvm/gems/ruby-1.9.3-p448/gems/linecache-0.46/ext/gem_make.out

谁能告诉我错误在哪里?

【问题讨论】:

  • 通过 brew install ruby 更新 ruby​​ 为我解决了这个问题。

标签: ruby ruby-debug


【解决方案1】:

错误在 mkmf.log 文件中。该文件应位于/home/hxh/.rvm/gems/ruby-1.9.3-p448/gems/linecache-0.46/ext/linecache/mkmf.log

如果没有,你可以使用

sudo find / -name mkmf.log

找到它。

要进一步排除故障,请参阅“How to install Nokogiri Ruby gem with mkmf.log saying libiconv not found?

【讨论】:

  • 但是,如果没有用于相关 gem 的 mkmf.log 文件怎么办?对我来说,还有许多其他 gem 的 mkmf.log 文件,但不是那个有问题的。
  • @levininja 您在错误消息中得到任何额外信息吗?在底部附近,我得到了To see why this extension failed to compile, please check the mkmf.log which can be found here: ...,后跟特定.log 文件的完整路径
  • 就像我说的那样,它指定的位置没有 mkmf.log 文件。我想我最终重新启动了一切,问题就消失了。
【解决方案2】:

我正在使用 Mac El Capitan。就我而言,这是由缺少开发人员工具引起的。我通过xcode-select --install 安装开发者工具解决了这个问题。之后,捆绑安装再次正常工作。

【讨论】:

  • Sierra 也是如此,我的问题宝石是 Nokogiri。
【解决方案3】:

您很可能缺少一些文件头(例如 zlib 或 libiconv),因此请尝试安装它们。

Linux:sudo apt-get install libz-dev libiconv-hook1 libiconv-hook-dev

OS X:brew install libiconv && xcode-select --install

否则,请检查您的 mkmf.log 文件以了解更多详细信息。

【讨论】:

  • 或者如果使用 Alpine Linux:apk add -build-base
  • nokogiri.org/tutorials/… 找到了一些好的文档。它会是:apk add build-base
【解决方案4】:

这似乎是 gcc 许可的问题.. 但是,如果您使用的是 OS X,如果您更新了 XCode 但尚未同意他们的条款和条件,则可能会遇到此问题..尝试在终端中输入 gcc 会告诉你如果你同意了。

【讨论】:

    【解决方案5】:

    我在运行 MacOS Big Sur 11.1 版和 Xcode 12.4 版 (12D4e) 时遇到了同样的问题。在我的例子中,Xcode 中没有选择命令行工具。

    我只是按照以下步骤解决了这个问题:

    1. 启动 Xcode。
    2. 使用 +, 打开首选项。
    3. 选择“位置”选项卡。
    4. 选择命令行工具(在我的例子中是 Xcode 12.4 12D4E)。
    5. 运行sudo gem install cocoapods(在我的情况下)。

    【讨论】:

      【解决方案6】:

      我的 mkmf.log 显示 gcc(我认为是 4.8.2)不喜欢 atomic on 使用的特定参数

      $ gem install atomic
      

      所以我遇到了非常相似的情况。我的答案是升级 gcc/gcc-libs 和 lib 工具。

      我使用 Arch linux,并且只使用 Arch linux。正确的方法是运行

      $ sudo pacman -Syu
      

      升级所有系统包。

      我安装了 Rails 并且从那以后没有运行系统更新,这就是问题所在。在大多数其他 *nix 发行版中,您将按名称更新到这些软件包的最新版本,即使用 apt,它会类似于

      $ sudo apt-get update
      

      紧随其后

      $ sudo apt-get upgrade {package-name}
      

      【讨论】:

      • 可以通过提供有关如何升级这些库的说明来改进此答案。
      • 我运行 Arch linux,它在很多方面都按照自己的规则运行,包括包管理,但我无法一眼确定提问者使用的是什么操作系统。
      • gem install atomic 为我做的 =)
      【解决方案7】:

      不管怎样,使用 Ruby 2.0.0 我在 OSX 10.10 上遇到了这个问题。

      我最终运行brew update,解决了一些冲突,然后安装了gem,一切正常。

      【讨论】:

        【解决方案8】:

        当我尝试安装 rails 时,kenorb 的答案在 Ubuntu 16.04 上为我工作!谢谢! 我按照以下步骤安装导轨:

        1. sudo apt-get install ruby​​-full
        2. sudo apt-get install libz-dev libiconv-hook1 libiconv-hook-dev
        3. sudo gem install rails

        【讨论】:

        • 在 LinuxMint 中面临同样的问题。按照您的指示,我可以安装导轨。谢谢1
        【解决方案9】:

        我遇到了问题,因为gcc 在我的机器上不可用。

        通过安装 gcc 修复它。

        sudo apt install build-essential
        

        【讨论】:

          【解决方案10】:

          这对我有用。 Nokogiri 是问题所在。

          如果您使用的是 Alpine-Linux(或您的操作系统的等效命令),请尝试以下操作:

          apk add build-base
          

          然后使用以下命令安装 Nokogiri:

          gem install nokogiri -- --without-pkg-config --with-libxml-2.0-config
          

          【讨论】:

          【解决方案11】:

          这可能是因为您的计算机安装了旧版本的 Ruby,因此请先更新 Ruby。这适用于 Ruby 2.6.3+。

          打开终端输入:

          curl -L https://get.rvm.io | bash -s stable
          

          然后:

          rvm install ruby-2.6
          

          如果尚未安装 Ruby,这将为您安装,然后将 Ruby 更新到新版本:

          rvm use ruby-2.6.3
          

          这可能会解决您的问题。您现在可以输入:

          sudo gem install cocoapods
          pod setup
          

          如果您的系统中没有安装 RVM,请使用:

          $HOME/.rvm/scripts/rvm
          rvm
          

          【讨论】:

            【解决方案12】:

            问题通过下一条命令解决:sudo apt install build-essential

            【讨论】:

              【解决方案13】:

              这对我有用:

              sudo apt-get install libmysqlclient-dev
              

              【讨论】:

              • 欢迎来到 SO!请阅读“How to Answer”和“Explaining entirely code-based answers”。虽然这在技术上可能是正确的,但它并不能解释为什么它可以解决问题或应该是选择的答案。我们应该在帮助解决问题的同时进行教育。尤其要解释为什么要安装 MySQL-client dev help,尤其是因为它是一种非常迂回的解决问题的方法。
              【解决方案14】:

              安装 RVM 并使用它来安装 Ruby 2.6.x:

              curl -sSL https://get.rvm.io | bash
              rvm install 2.6.x
              rvm use ruby-2.6.x
              

              现在试试,它应该可以工作了:

              sudo gem install cocoapods
              

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2013-01-21
                • 2020-01-24
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多