`bundle install` 在 EC2 实例上失败

Posted

技术标签:

【中文标题】`bundle install` 在 EC2 实例上失败【英文标题】:`bundle install` fails on EC2 instance 【发布时间】:2013-10-15 18:13:02 【问题描述】:

在将存储库从 github 克隆到我的 EC2 实例后,我尝试运行 bundle install,但出现以下错误:

bundle install
Fetching source index from http://rubygems.org/
Fetching git://github.com/EvilFaeton/rubber.git
Unfortunately, a fatal error has occurred. Please see the Bundler
troubleshooting documentation at http://bit.ly/bundler-issues. Thanks!
/home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/source/git/git_proxy.rb:88:in ``': Cannot allocate memory - git clone 'git://github.com/EvilFaeton/rubber.git' "/home/gbahrani/.rvm/gems/ruby-1.9.2-p320@voylla/cache/bundler/git/rubber-505b2994ade5c531df4a62b99e99b8859d168b37" --bare --no-hardlinks (Errno::ENOMEM)
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/source/git/git_proxy.rb:88:in `git'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/source/git/git_proxy.rb:49:in `checkout'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/source/git.rb:144:in `specs'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/lazy_specification.rb:52:in `__materialize__'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:88:in `block in materialize'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/definition.rb:109:in `resolve_remotely!'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/installer.rb:83:in `run'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/installer.rb:14:in `install'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/cli.rb:247:in `install'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/vendor/thor/task.rb:27:in `run'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/vendor/thor/invocation.rb:120:in `invoke_task'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/vendor/thor.rb:344:in `dispatch'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/vendor/thor/base.rb:434:in `start'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/bin/bundle:20:in `block in <top (required)>'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/lib/bundler/friendly_errors.rb:3:in `with_friendly_errors'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/gems/bundler-1.3.5/bin/bundle:20:in `<top (required)>'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `load'
from /home/gbahrani/.rvm/gems/ruby-1.9.2-p320@global/bin/bundle:19:in `<main>'

有人可以告诉我为什么会出现此错误以及如何解决此问题吗? 谢谢

【问题讨论】:

【参考方案1】:

问题是实例内存不足。将实例类型从 t1.micro 更改为 m1.small 解决了这个问题。缺点是 m1.small 实例是收费的,与 t1.micro 不同。如here 所述,可以更改实例类型。您可能还想查看this

希望对某人有所帮助。

【讨论】:

【参考方案2】:

嘿,这是一种无需升级实例即可解决此问题的更好方法,对于想要继续使用 micro 的每个人来说,他们应该为实例添加一个交换。有一个非常有用的指南here

【讨论】:

【参考方案3】:

尝试将交换添加到您的实例

https://www.digitalocean.com/community/tutorials/how-to-add-swap-on-ubuntu-12-04

【讨论】:

以上是关于`bundle install` 在 EC2 实例上失败的主要内容,如果未能解决你的问题,请参考以下文章

如何将映像传输到 Amazon EBS 卷以供 EC2 使用?

EC2 实例 (Nginx) 上的 502 错误网关错误

具有 Red Hat 4.4.4-13 的亚马逊 ec2 实例上的 nginx?

在 Linux AMI EC2 实例上为 phpMyAdmin 5.0.2 安装启用 mysqli

ec2 挂在 npm install 上

关于bundle install 的一点补充