Ruby-on-rails 错误:在 mac mountian lion os 上安装 rails 时无法构建 gem 本机扩展
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/11802918/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
error: failed to build gem native extension when installing rails on mac mountian lion os
提问by Aileen Du
I've recently updated to Mountain Lion and re-installed Ruby, but when I try to run a test Rails app, I get an error message that says that "Rails is not currently installed" on my system. I do what it says, type sudo gem install railsand get:
我最近更新到 Mountain Lion 并重新安装了 Ruby,但是当我尝试运行测试 Rails 应用程序时,我收到一条错误消息,指出我的系统上“当前未安装 Rails”。我按照它说的做,输入sudo gem install rails并得到:
cleared faster_require caches due to new gem install...
Successfully installed rails-3.2.7
1 gem installed
Installing ri documentation for rails-3.2.7...
Installing RDoc documentation for rails-3.2.7...
But when I check to see which rails version is install, here is what I get:
但是,当我检查安装了哪个 Rails 版本时,我得到了以下信息:
Rails is not currently installed on this system. To get the latest version, simply type:
$ sudo gem install rails
You can then rerun your "rails" command.
I've also tried gem install railsand get:
我也试过gem install rails并得到:
Building native extensions. This could take a while...
ERROR: Error installing rails:
ERROR: Failed to build gem native extension.
/Users/aileen/.rvm/rubies/ruby-1.9.3-p194/bin/ruby extconf.rb
creating Makefile
make
compiling generator.c
make: /usr/bin/gcc-4.2: No such file or directory
make: *** [generator.o] Error 1
Gem files will remain installed in /Users/aileen/.rvm/gems/ruby-1.9.3-p194@rails327/gems/json-1.7.4 for inspection.
Results logged to /Users/aileen/.rvm/gems/ruby-1.9.3-p194@rails327/gems/json-1.7.4/ext/json/ext/generator/gem_make.out
回答by Franco Rondini
I see that you are using ruby 1.9.3using rvmon OS X 10.8.2 (Mountain lion)It's possible that some gems referenced by rails need gcc-4.2in /usr/binto build native estension.
我看到你正在使用的红宝石1.9.3使用RVM在OS X 10.8.2(山狮),这有可能是通过轨道中引用的一些宝石需要GCC-4.2中的/ usr / bin中建立本地estension。
In Mountain Lion , even after installing Xcode 4.5 CLI tools( opening the menu XCode - Preferences..Download -> Command Line Tools ) you get /usr/bin/gccbut not /usr/bin/gcc-4.2; unfortunately the build process of some native extension relies on /usr/bin/gcc-4.2
在 Mountain Lion 中,即使安装了Xcode 4.5 CLI 工具(打开菜单 XCode - Preferences..Download -> Command Line Tools),您也会得到/usr/bin/gcc而不是/usr/bin/gcc-4.2;不幸的是,某些本机扩展的构建过程依赖于 /usr/bin/gcc-4.2
However I just installed rails smoothly on an environment such as your. I previously fixed the environment as discussed in the Carina C. Zona's blog post: Fix for “make: /usr/bin/gcc-4.2: No such file or directory”, that is:
但是,我只是在您这样的环境中顺利安装了导轨。我之前修复了 Carina C. Zona 的博客文章中讨论的环境:修复“make: /usr/bin/gcc-4.2: No such file or directory”,即:
make sure you have installed Homebrew
brew --version
should report 0.9.3 or greater
- if you have not brew than follow these instrunctions to install it
- if you have a older version then update it:
brew update
now you can install gcc-4.2 and create a symbolink link where is aspected by the build system
brew tap homebrew/dupes
brew install apple-gcc42
sudo ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
now you're ready to successfully install rails
gem install rails
确保你已经安装了 Homebrew
酿造--版本
应报告 0.9.3 或更高
- 如果您还没有 brew,请按照这些说明进行安装
- 如果您有旧版本,请更新它:
酿造更新
现在您可以安装 gcc-4.2 并创建一个符号链接链接,该链接由构建系统提供
酿造自来水自制/欺骗
酿造安装苹果-gcc42
须藤 ln -s /usr/local/bin/gcc-4.2 /usr/bin/gcc-4.2
现在您已准备好成功安装 rails
宝石安装导轨
You should get output something like this
你应该得到这样的输出
Fetching: i18n-0.6.1.gem (100%) Fetching: activesupport-3.2.8.gem (100%) Fetching: builder-3.0.4.gem (100%) Fetching: activemodel-3.2.8.gem (100%) Fetching: rack-cache-1.2.gem (100%) Fetching: rack-test-0.6.2.gem (100%) Fetching: journey-1.0.4.gem (100%) Fetching: hike-1.2.1.gem (100%) Fetching: sprockets-2.1.3.gem (100%) Fetching: erubis-2.7.0.gem (100%) Fetching: actionpack-3.2.8.gem (100%) Fetching: arel-3.0.2.gem (100%) Fetching: tzinfo-0.3.34.gem (100%) Fetching: activerecord-3.2.8.gem (100%) Fetching: activeresource-3.2.8.gem (100%) Fetching: polyglot-0.3.3.gem (100%) Fetching: treetop-1.4.12.gem (100%) Fetching: mail-2.4.4.gem (100%) Fetching: actionmailer-3.2.8.gem (100%) Fetching: rack-ssl-1.3.2.gem (100%) Fetching: railties-3.2.8.gem (100%) Fetching: rails-3.2.8.gem (100%) Successfully installed i18n-0.6.1 Successfully installed activesupport-3.2.8 Successfully installed builder-3.0.4 Successfully installed activemodel-3.2.8 Successfully installed rack-cache-1.2 Successfully installed rack-test-0.6.2 Successfully installed journey-1.0.4 Successfully installed hike-1.2.1 Successfully installed sprockets-2.1.3 Successfully installed erubis-2.7.0 Successfully installed actionpack-3.2.8 Successfully installed arel-3.0.2 Successfully installed tzinfo-0.3.34 Successfully installed activerecord-3.2.8 Successfully installed activeresource-3.2.8 Successfully installed polyglot-0.3.3 Successfully installed treetop-1.4.12 Successfully installed mail-2.4.4 Successfully installed actionmailer-3.2.8 Successfully installed rack-ssl-1.3.2 Successfully installed railties-3.2.8 Successfully installed rails-3.2.8 22 gems installed Installing ri documentation for i18n-0.6.1... Building YARD (yri) index for i18n-0.6.1... Installing ri documentation for activesupport-3.2.8... Building YARD (yri) index for activesupport-3.2.8... Installing ri documentation for builder-3.0.4... Building YARD (yri) index for builder-3.0.4... Installing ri documentation for activemodel-3.2.8... Building YARD (yri) index for activemodel-3.2.8... Installing ri documentation for rack-cache-1.2... Building YARD (yri) index for rack-cache-1.2... Installing ri documentation for rack-test-0.6.2... Building YARD (yri) index for rack-test-0.6.2... Installing ri documentation for journey-1.0.4... Building YARD (yri) index for journey-1.0.4... Installing ri documentation for hike-1.2.1... Building YARD (yri) index for hike-1.2.1... Installing ri documentation for sprockets-2.1.3... Building YARD (yri) index for sprockets-2.1.3... Installing ri documentation for erubis-2.7.0... Building YARD (yri) index for erubis-2.7.0... Installing ri documentation for actionpack-3.2.8... Building YARD (yri) index for actionpack-3.2.8... Installing ri documentation for arel-3.0.2... Building YARD (yri) index for arel-3.0.2... Installing ri documentation for tzinfo-0.3.34... Building YARD (yri) index for tzinfo-0.3.34... Installing ri documentation for activerecord-3.2.8... Building YARD (yri) index for activerecord-3.2.8... Installing ri documentation for activeresource-3.2.8... Building YARD (yri) index for activeresource-3.2.8... Installing ri documentation for polyglot-0.3.3... Building YARD (yri) index for polyglot-0.3.3... Installing ri documentation for treetop-1.4.12... Building YARD (yri) index for treetop-1.4.12... Installing ri documentation for mail-2.4.4... Building YARD (yri) index for mail-2.4.4... Installing ri documentation for actionmailer-3.2.8... Building YARD (yri) index for actionmailer-3.2.8... Installing ri documentation for rack-ssl-1.3.2... Building YARD (yri) index for rack-ssl-1.3.2... Installing ri documentation for railties-3.2.8... Building YARD (yri) index for railties-3.2.8... Installing ri documentation for rails-3.2.8... Building YARD (yri) index for rails-3.2.8... Installing RDoc documentation for i18n-0.6.1... Installing RDoc documentation for activesupport-3.2.8... Installing RDoc documentation for builder-3.0.4... Installing RDoc documentation for activemodel-3.2.8... Installing RDoc documentation for rack-cache-1.2... Installing RDoc documentation for rack-test-0.6.2... Installing RDoc documentation for journey-1.0.4... Installing RDoc documentation for hike-1.2.1... Installing RDoc documentation for sprockets-2.1.3... Installing RDoc documentation for erubis-2.7.0... Installing RDoc documentation for actionpack-3.2.8... Installing RDoc documentation for arel-3.0.2... Installing RDoc documentation for tzinfo-0.3.34... Installing RDoc documentation for activerecord-3.2.8... Installing RDoc documentation for activeresource-3.2.8... Installing RDoc documentation for polyglot-0.3.3... Installing RDoc documentation for treetop-1.4.12... Installing RDoc documentation for mail-2.4.4... Installing RDoc documentation for actionmailer-3.2.8... Installing RDoc documentation for rack-ssl-1.3.2... Installing RDoc documentation for railties-3.2.8... Installing RDoc documentation for rails-3.2.8...
Fetching: i18n-0.6.1.gem (100%) Fetching: activesupport-3.2.8.gem (100%) Fetching: builder-3.0.4.gem (100%) Fetching: activemodel-3.2.8.gem (100%) Fetching: rack-cache-1.2.gem (100%) Fetching: rack-test-0.6.2.gem (100%) Fetching: journey-1.0.4.gem (100%) Fetching: hike-1.2.1.gem (100%) Fetching: sprockets-2.1.3.gem (100%) Fetching: erubis-2.7.0.gem (100%) Fetching: actionpack-3.2.8.gem (100%) Fetching: arel-3.0.2.gem (100%) Fetching: tzinfo-0.3.34.gem (100%) Fetching: activerecord-3.2.8.gem (100%) Fetching: activeresource-3.2.8.gem (100%) Fetching: polyglot-0.3.3.gem (100%) Fetching: treetop-1.4.12.gem (100%) Fetching: mail-2.4.4.gem (100%) Fetching: actionmailer-3.2.8.gem (100%) Fetching: rack-ssl-1.3.2.gem (100%) Fetching: railties-3.2.8.gem (100%) Fetching: rails-3.2.8.gem (100%) Successfully installed i18n-0.6.1 Successfully installed activesupport-3.2.8 Successfully installed builder-3.0.4 Successfully installed activemodel-3.2.8 Successfully installed rack-cache-1.2 Successfully installed rack-test-0.6.2 Successfully installed journey-1.0.4 Successfully installed hike-1.2.1 Successfully installed sprockets-2.1.3 Successfully installed erubis-2.7.0 Successfully installed actionpack-3.2.8 Successfully installed arel-3.0.2 Successfully installed tzinfo-0.3.34 Successfully installed activerecord-3.2.8 Successfully installed activeresource-3.2.8 Successfully installed polyglot-0.3.3 Successfully installed treetop-1.4.12 Successfully installed mail-2.4.4 Successfully installed actionmailer-3.2.8 Successfully installed rack-ssl-1.3.2 Successfully installed railties-3.2.8 Successfully installed rails-3.2.8 22 gems installed Installing ri documentation for i18n-0.6.1... Building YARD (yri) index for i18n-0.6.1... Installing ri documentation for activesupport-3.2.8... Building YARD (yri) index for activesupport-3.2.8... Installing ri documentation for builder-3.0.4... Building YARD (yri) index for builder-3.0.4... Installing ri documentation for activemodel-3.2.8... Building YARD (yri) index for activemodel-3.2.8... Installing ri documentation for rack-cache-1.2... Building YARD (yri) index for rack-cache-1.2... Installing ri documentation for rack-test-0.6.2... Building YARD (yri) index for rack-test-0.6.2... Installing ri documentation for journey-1.0.4... Building YARD (yri) index for journey-1.0.4... Installing ri documentation for hike-1.2.1... Building YARD (yri) index for hike-1.2.1... Installing ri documentation for sprockets-2.1.3... Building YARD (yri) index for sprockets-2.1.3... Installing ri documentation for erubis-2.7.0... Building YARD (yri) index for erubis-2.7.0... Installing ri documentation for actionpack-3.2.8... Building YARD (yri) index for actionpack-3.2.8... Installing ri documentation for arel-3.0.2... Building YARD (yri) index for arel-3.0.2... Installing ri documentation for tzinfo-0.3.34... Building YARD (yri) index for tzinfo-0.3.34... Installing ri documentation for activerecord-3.2.8... Building YARD (yri) index for activerecord-3.2.8... Installing ri documentation for activeresource-3.2.8... Building YARD (yri) index for activeresource-3.2.8... Installing ri documentation for polyglot-0.3.3... Building YARD (yri) index for polyglot-0.3.3... Installing ri documentation for treetop-1.4.12... Building YARD (yri) index for treetop-1.4.12... Installing ri documentation for mail-2.4.4... Building YARD (yri) index for mail-2.4.4... Installing ri documentation for actionmailer-3.2.8... Building YARD (yri) index for actionmailer-3.2.8... Installing ri documentation for rack-ssl-1.3.2... Building YARD (yri) index for rack-ssl-1.3.2... Installing ri documentation for railties-3.2.8... Building YARD (yri) index for railties-3.2.8... Installing ri documentation for rails-3.2.8... Building YARD (yri) index for rails-3.2.8... Installing RDoc documentation for i18n-0.6.1... Installing RDoc documentation for activesupport-3.2.8... Installing RDoc documentation for builder-3.0.4... Installing RDoc documentation for activemodel-3.2.8... Installing RDoc documentation for rack-cache-1.2... Installing RDoc documentation for rack-test-0.6.2... Installing RDoc documentation for journey-1.0.4... Installing RDoc documentation for hike-1.2.1... Installing RDoc documentation for sprockets-2.1.3... Installing RDoc documentation for erubis-2.7.0... Installing RDoc documentation for actionpack-3.2.8... Installing RDoc documentation for arel-3.0.2... Installing RDoc documentation for tzinfo-0.3.34... Installing RDoc documentation for activerecord-3.2.8... Installing RDoc documentation for activeresource-3.2.8... Installing RDoc documentation for polyglot-0.3.3... Installing RDoc documentation for treetop-1.4.12... Installing RDoc documentation for mail-2.4.4... Installing RDoc documentation for actionmailer-3.2.8... Installing RDoc documentation for rack-ssl-1.3.2... Installing RDoc documentation for railties-3.2.8... Installing RDoc documentation for rails-3.2.8...
回答by Justin M. Keyes
@Franco is correct: the "native extension" build scripts expect /usr/bin/gcc-4.2, which does not exist in OS X Mountain Lion.
@Franco 是正确的:/usr/bin/gcc-4.2OS X Mountain Lion 中不存在“本机扩展”构建脚本 expect 。
- If you upgraded to Mountain Lionfrom a prevoius OS X version, then you may already have gcc. In that case, just create a symlink to gcc:
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 - If you have a fresh install of Mountain Lion, then you may not have gcc at all. In that case, you would need to install gccas @Franco explains.
- 如果您从以前的 OS X 版本升级到 Mountain Lion,那么您可能已经拥有 gcc。在这种情况下,只需创建一个到 gcc 的符号链接:
sudo ln -s /usr/bin/gcc /usr/bin/gcc-4.2 - 如果您有全新安装的 Mountain Lion,那么您可能根本没有 gcc 。在这种情况下,您需要像@Franco 解释的那样安装 gcc。
This is not specifically a "rails" gem issue. Any gem that builds "native extensions" fails:
这不是专门的“rails” gem 问题。任何构建“本机扩展”的 gem 都会失败:
Gem::Installer::ExtensionBuildError: ERROR: Failed to build gem native extension. [...] You have to install development tools first.
Gem::Installer::ExtensionBuildError: 错误:无法构建 gem 本机扩展。[...] 您必须先安装开发工具。
In my case, I was trying to install octopress, which depends on something called RedCloth.
就我而言,我试图安装octopress,这取决于一种叫做 RedCloth 的东西。
回答by Shyam Habarakada
I ran into this issue as well, with Mountain Lion. The gem that was failing installation was json. To fix it, I installed the xcode CLI tools and then just symlinked the installed gcc (i686-apple-darwin11-llvm-gcc-4.2) as /usr/bin/gcc-4.2. Once this was done, it just worked.
我也遇到了这个问题,与 Mountain Lion。安装失败的 gem 是json. 为了修复它,我安装了 xcode CLI 工具,然后将安装的 gcc (i686-apple-darwin11-llvm-gcc-4.2) 符号链接为/usr/bin/gcc-4.2. 一旦完成,它就起作用了。
While trying to install another gem, I ran into a similar issue where the native build step complained about missing g++-4.2. I symlinked this exactly the same as I did with gcc-4.2 above, and it worked.
在尝试安装另一个 gem 时,我遇到了一个类似的问题,其中本机构建步骤抱怨缺少 g++-4.2。我对它的符号链接与我在上面对 gcc-4.2 所做的完全相同,并且它起作用了。
UPDATE: OSX Mavericks with latest RVM
更新:具有最新 RVM 的 OSX Mavericks
With the latest OSX 10.9 and latest RVM, these issues seem to have gone away. So, time to upgrade.
使用最新的 OSX 10.9 和最新的 RVM,这些问题似乎已经消失。所以,是时候升级了。

