【问题标题】:macOS, Rails: "Failed to build gem native extension"macOS,Rails:“无法构建 gem 原生扩展”
【发布时间】:2011-12-05 17:26:34
【问题描述】:

我一直在尝试在我的 mac 上安装 rails。我有 OS X 10.6.8,并且我已经确认我有 Ruby,版本 1.8.7

我运行了sudo gem updatesudo gem update --system 以获取最新版本的软件。

但是,当我运行 sudo gem install rails 时,我得到了这个错误:

ERROR:  Error installing rails:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/lib/ruby/ruby.h


Gem files will remain installed in /Library/Ruby/Gems/1.8/gems/json-1.6.3 for inspection.
Results logged to /Library/Ruby/Gems/1.8/gems/json-1.6.3/ext/json/ext/parser/gem_make.out

【问题讨论】:

    标签: ruby-on-rails ruby macos rubygems


    【解决方案1】:

    如果您有 XCode 4 或更高版本,您需要打开它并转到 Preferences -> Downloads -> Components 并安装命令行工具,因为默认情况下不安装它们。在发生这种情况之前无法安装 Rails。

    【讨论】:

    • 谢谢罗伯!这是拼图中缺失的一块!
    • 我确实需要安装命令行工具,但这个解决方案对我不起作用(命令行工具未在组件中列出)。 This alternate solution 为我工作
    【解决方案2】:

    我使用的是 osx 10.10。您可以从命令行下载

    xcode-select --install
    

    【讨论】:

    • 这对我来说是正确的答案。尝试了上面的那个,我没有在列表中看到 CLI 工具。
    • 这适用于 Mac OS X 10.11.5 - El Capitan 的 mesmo
    【解决方案3】:

    不确定它需要编译什么,但 OSX 根本无法编译任何原生 ruby​​ 扩展,除非安装了 Apple 开发者工具。在 10.7 Lion 上,您可以从应用商店免费下载,或在此处下载 10.6:http://developer.apple.com/xcode/index.php

    它也可能在您的 OSX 安装光盘上,但可能已经过时了。

    【讨论】:

    • 那行得通——非常感谢。全新在 Mac 上开发,如果这个问题是初级的,请道歉
    【解决方案4】:

    您是否安装了 OS X 开发者工具?您需要这样做才能构建原生扩展

    【讨论】:

      【解决方案5】:

      只是跟进...

      可能是您使用的是 mac 并且 rails 无法为 c 头文件找到正确的编译器。

      只需从应用商店/自制软件安装 xcode 或转到终端...

      $ xcode-select --install

      完成安装并同意许可等,然后...

      $ sudo gem install rails

      【讨论】:

        【解决方案6】:

        失败有两种可能的原因:

        1. 主要原因:缺少 Xcode 命令行工具

        手动验证 Xcode 命令行工具安装: 检查是否存在 “/usr/include/iconv.h”(如果不存在=>缺少或未正确安装 Xcode CLT)

        安装 Xcode CLT: 尝试在终端上运行xcode-select --install 并按照说明进行操作。如果失败,打开Xcode.app,从菜单“Xcode”-“打开开发者工具”-“更多开发者工具”中选择打开开发者站点,下载你的操作系统版本的安装程序并运行它。

        1. 次要原因(如果 1. 失败):版本问题 尝试使用 rbenv 升级 ruby​​ 版本。

        希望对你有帮助!

        【讨论】:

          【解决方案7】:

          解决此问题的步骤: 除非错误得到修复,否则请按照以下步骤操作。

          1. 打开终端并运行命令:
            sudo xcode-select --install
            sudo xcodebuild -license accept
          2. 确保您只安装了一个 Xcode 并且它是最新的。如果安装了多个版本,则仅在应用程序中保留带有名称的最新版本,例如 Xcode.app
          3. 打开Xcode->preferences->locations然后检查是否选择了任何命令行工具;如果没有,则选择
          4. 通过以下方式安装 Ruby:
            brew install ruby
          5. 通过
            sudo gem install cocoapods 安装 CocoaPods

          【讨论】:

          • 就我而言,第 2 点是问题所在,因为默认情况下我无法使用最新的 Xcode。我快疯了! PS:在我的情况下,还需要软件更新。感谢分享!
          • 在运行 sudo gem install cocoapods 之前可能需要关闭并重新打开终端
          【解决方案8】:

          尝试通过 RVM 安装 Ruby。我是这样解决的

          How to install ruby on Ubuntu with rvm

          【讨论】:

            【解决方案9】:

            命令行工具没有为我解决这个问题。 我通过 rbenv 将 ruby​​ 安装升级到 2.2.0,将其设为全局默认 ruby​​ 安装,此问题已修复。

            【讨论】:

              【解决方案10】:

              将 Ruby 切换到 Homebrew 版本:

              $ brew install ruby
              $ brew link --overwrite ruby
              
              $ echo 'export PATH="/usr/local/opt/ruby/bin:$PATH"' >> ~/.bash_profile
              $ echo 'export LDFLAGS="-L/usr/local/opt/ruby/lib"' >> ~/.bash_profile
              $ echo 'export CPPFLAGS="-I/usr/local/opt/ruby/include"' >> ~/.bash_profile
              

              【讨论】:

                【解决方案11】:

                刚刚遇到类似的问题。我可以确认安装命令行工具可以修复它。

                【讨论】:

                  【解决方案12】:

                  https://stackoverflow.com/a/58226876/8070378

                  运行后解决:

                  sudo xcode-select --install
                  sudo xcodebuild -license accept
                  

                  【讨论】:

                    【解决方案13】:

                    我在 macOS Catalina 10.15.7 上遇到了这个问题,似乎 Xcode 12.3 的 Ruby 是 2.6 的变体,但我的软件需要 2.7。

                    我安装了rvm 并运行了rvm install ruby-2.7,现在它运行良好?

                    【讨论】:

                      猜你喜欢
                      • 1970-01-01
                      • 2012-09-15
                      • 1970-01-01
                      • 2015-07-20
                      • 2015-06-18
                      • 2022-10-25
                      • 1970-01-01
                      • 2014-05-11
                      相关资源
                      最近更新 更多