构建本地扩展。这可能需要一些时间。

14

我在我的电脑上更新 gem 遇到了问题。

  • 操作系统为 osx 10.9.2
  • xcode 已经更新,命令行工具已经安装
  • ruby 版本为 2.0.0p451 (2014-02-24 revision 45167) [universal.x86_64-darwin13]

我执行以下操作:

$ sudo gem update
Password:
Updating installed gems
Updating bigdecimal
Building native extensions.  This could take a while...

它就卡在这里,我可以等一整天什么也不会发生,只看到我的风扇转速达到6k。 我不熟悉Ruby,我只使用了一些gem,如Sass、Compass等。

找了一圈,但找不到解决方案,其他人似乎遇到了某种错误,但我没有,它就是卡住了。

有什么建议吗? 也许删除gem并重新安装它们?

$ gem environment
RubyGems Environment:
  - RUBYGEMS VERSION: 2.2.2
  - RUBY VERSION: 2.0.0 (2014-02-24 patchlevel 451) [universal.x86_64-darwin13]
  - INSTALLATION DIRECTORY: /Library/Ruby/Gems/2.0.0
  - RUBY EXECUTABLE: /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
  - EXECUTABLE DIRECTORY: /usr/bin
  - SPEC CACHE DIRECTORY: /Users/xyz/.gem/specs
  - RUBYGEMS PLATFORMS:
    - ruby
    - universal-darwin-13
  - GEM PATHS:
     - /Library/Ruby/Gems/2.0.0
     - /Users/xyz/.gem/ruby/2.0.0
     - /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/2.0.0
  - GEM CONFIGURATION:
     - :update_sources => true
     - :verbose => true
     - :backtrace => false
     - :bulk_threshold => 1000
  - REMOTE SOURCES:
     - https://rubygems.org/
  - SHELL PATH:
     - /usr/bin
     - /bin
     - /usr/sbin
     - /sbin
     - /usr/local/bin

猜测可能是测试套件中的一个测试用例卡住了(我在安装rubinius时遇到了这个问题)。通过 ps -ef 找到了安装命令层次结构和特定的“挂起”进程,然后将其终止,并直接从下载的临时源目录运行安装命令(使用rake build install代替rake,以跳过测试)。 - Janaka Bandara
1个回答

10
gem显示正在构建本地扩展时,这意味着它正在编译一些C代码,以便将扩展与给定的gem捆绑在一起。你的粉丝增加到6k可能是处理器密集型编译的结果 - 也就是说,编译扩展使用了相当多的处理器。
我会观察你的进程,确保至少正在进行编译。

我知道,谢谢,但是这里有些问题,它无法编译,停留在这里,我可以等上几个小时。问题是没有错误提示,屏幕一直都是一样的。 - Bobz
3
在命令行中加上 --verbose 标志然后查看输出结果。 - Jeremy Rodi
这是我得到的:http://pastebin.com/bMiyJXsN,但它卡住了,什么也没发生,但我看到我的CPU好像在做某些事情或试图做某些事情。 - Bobz
我在一段时间后点击了取消,然后出现了错误:http://pastebin.com/3FR2u7xh。我已经尝试搜索这个日志文件,但只有几个:http://pastebin.com/u3iAdw9L。我应该检查它们全部吗?看起来好像有几个 gem 无法编译? - Bobz
正如@JeremyRodi所说,编译是CPU密集型的,可能需要一些时间。 - Ahmad Mushtaq

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接