安装Ruby Gems的问题?

时间:2013-11-09 17:16:40

标签: ruby-on-rails ruby osx-mavericks

我在Mac上安装了Ruby,但是当我尝试gem install rails时,我收到以下错误消息:

Could not find a valid gem 'rails' (>= 0), here is why:
Unable to download data from https://rubygems.org/ - Errno::ENOMEM: Cannot allocate memory - connect(2) (https://rubygems.org/latest_specs.4.8.gz)

我尝试过其他几个宝石并获得相同的信息。我不确定这意味着什么,有人能提出什么建议吗?

gem env的输出:

  

RubyGems环境:

     
      
  • RUBYGEMS VERSION:2.0.3
  •   
  • RUBY VERSION:2.0.0(2013-06-27 patchlevel 247)[universal.x86_64-darwin13]
  •   
  • 安装目录:/ Library/Ruby/Gems/2.0.0
  •   
  • RUBY EXECUTABLE:/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby
  •   
  • EXECUTABLE目录:/ usr / bin
  •   
  • RUBYGEMS PLATFORMS:   
        
    • 红宝石
    •   
    • 万向达尔文-13
    •   
  •   
  • GEM路径:   
        
    • /Library/Ruby/Gems/2.0.0
    •   
    • /Users/brent/.gem/ruby/2.0.0
    •   
    • /System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/lib/ruby/gems/   2.0.0
    •   
  •   
  • GEM配置:   
        
    • :update_sources =>真
    •   
    • :verbose =>真
    •   
    • :backtrace =>假
    •   
    • :bulk_threshold => 1000
    •   
  •   
  • 远程来源:   
  •   

6 个答案:

答案 0 :(得分:5)

我遇到了这个问题,这是由诺顿防火墙引起的。显然,当以这种方式调用sudo时,防火墙永远不会提示应用程序阻塞。因此,网络访问被阻止。暂时禁用防火墙修复了错误。

这也可以解释为什么其他解决方案有效,包括其他终端应用程序 - 它们之前可能已被授予网络访问权限。

答案 1 :(得分:0)

看起来“Ruby”没有安装或工作正常。

我建议使用“RVM (Ruby Version Manager)”,但是,如果您需要采用其他方式,请确保在系统中安装了Ruby。列出你的宝石和grep for Ruby。然后安装Rails。

我假设其他东西如捆绑器或权限将被处理。

答案 2 :(得分:0)

不要使用系统红宝石。您将需要安装像RVM或rbenv这样的ruby-manager。

我非常喜欢来自 thinkbot shell脚本 - https://github.com/thoughtbot/laptop

您将不得不从Xcode安装Xcode以及其他开发人员工具和命令行工具。

然后运行思想机器人脚本。一旦你开始它将需要一段时间。所以去煮一些咖啡吧。这将安装自制软件,rbenv并设置一切。

答案 3 :(得分:0)

由于似乎没有可行的答案,如果你们仍然坚持这个问题,我建议采用以下解决方法(适用于OS X Mavericks): 1)这似乎是与终端有关的问题。 2)因此,请在iTerm2(http://www.iterm2.com)控制台中尝试您的命令(“gem install rails”或“gem install compass”)。

答案 4 :(得分:0)

我也遇到了同样的错误,导致错误的是我的网络。检查您的网络连接和代理设置。

答案 5 :(得分:-2)

你应该真的使用Bundler

test-rails”是一个非常简单的Rails应用程序的示例,它通过bundler安装Rails gem。

您不需要将Rails安装为系统级gem。保存自己未来的头痛并立即开始使用Bundler - 你不会后悔。