OS-X,Rails:“无法构建gem原生扩展”

时间:2011-12-05 17:26:34

标签: ruby-on-rails ruby macos gem

我一直试图在我的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

12 个答案:

答案 0 :(得分:45)

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

答案 1 :(得分:34)

我正在使用osx 10.10。您可以从命令行下载

xcode-select --install

答案 2 :(得分:8)

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

它也可能在你的OSX安装光盘上,虽然可能更加过时。

答案 3 :(得分:5)

只是跟进......

可能是你在mac和rails上找不到正确的c头编译器。

只需从apps store / homebrew安装xcode或转到终端...

  

$ xcode-select --install

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

  

$ sudo gem install rails

答案 4 :(得分:4)

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

答案 5 :(得分:3)

失败有两个可能的原因:

  1. 主要原因:缺少Xcode命令行工具
  2. 手动验证Xcode命令行工具: 检查是否存在 " /usr/include/iconv.h" (如果缺席=>缺少或未正确安装Xcode CLT)

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

    1. 次要原因(如果1.失败):版本问题 尝试使用rbenv升级ruby版本。
    2. 希望它有所帮助!

答案 6 :(得分:1)

尝试通过RVM安装Ruby。我用这种方式解决了

How to install ruby on Ubuntu with rvm

答案 7 :(得分:1)

命令行工具并没有为我解决这个问题。 我通过rbenv将ruby安装升级到2.2.0,这是全局默认的ruby安装,这个问题已得到解决。

答案 8 :(得分:1)

解决此问题的步骤: 除非已解决错误,否则请执行以下步骤。

  1. 打开终端并运行命令 sudo xcode-select-安装 sudo xcodebuild -license接受
  2. 确保仅安装了一个xcode,并且它是最新的。如果安装了多个xcode,则在诸如Xcode.app
  3. 之类的应用程序中仅保留名称最新的一个。
  4. 打开Xcode-> preferences->位置,然后检查是否选择了anu命令行工具?如果没有,请选择。
  5. 通过安装Ruby 酿造安装红宝石
  6. 通过安装椰子 sudo gem install cocoapods

答案 9 :(得分:0)

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

答案 10 :(得分:0)

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

运行后已解决:

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

答案 11 :(得分:0)

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

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