【问题标题】:Bundle install fails when install unf_ext. "Cannot allocate memory error when installing unf_ext"安装 unf_ext 时捆绑安装失败。 “安装 unf_ext 时无法分配内存错误”
【发布时间】:2016-07-27 05:35:29
【问题描述】:

我的远程服务器上发生了这个错误。

虽然这在我的本地环境中是不可复制的。

使用原生扩展安装 unf_ext 0.0.7.2

Gem::Ext::BuildError: ERROR: 未能构建 gem 原生扩展。

/home/ubuntu/.rbenv/versions/2.1.2/bin/ruby extconf.rb

无法分配内存 - /home/ubuntu/.rbenv/versions/2.1.2/bin/ruby extconf.rb 2>&1

Gem files will remain installed in /home/ubuntu/switch-web/shared/bundle/ruby/2.1.0/gems/unf_ext-0.0.7.2 for inspection.
Results logged to /home/ubuntu/switch-web/shared/bundle/ruby/2.1.0/extensions/x86_64-linux/2.1.0-static/unf_ext-0.0.7.2/gem_make.out
An error occurred while installing unf_ext (0.0.7.2), and Bundler cannot
continue.
Make sure that `gem install unf_ext -v '0.0.7.2'` succeeds before bundling.

我检查了我的服务器的内存空间,它仍然相当不错(2GB 免费)。

【问题讨论】:

    标签: ruby-on-rails ruby bundler


    【解决方案1】:

    相当老的问题,但我可以提出一个替代答案。如果服务器没有交换分区,您可以临时创建并启用交换文件,而不是升级服务器资源(可能会增加成本):

    以root身份运行:

    # create a 512 Mb file
    dd if=/dev/zero of=/swapfile1 bs=1024 count=524288
    
    # assign the correct permissions
    chown root:root /swapfile1
    chmod 0600 /swapfile1
    
    # initialize the file as a swap file
    mkswap /swapfile1
    
    # enable swap
    swapon /swapfile1
    

    构建完成后,您可以禁用交换文件并将其删除:

    swapoff /swapfile1
    rm /swapfile1
    

    【讨论】:

    • 这是一个节省生命和金钱的方法。多谢兄弟。我可以把它放在那里吗?
    • 我想你可以,当然。
    【解决方案2】:

    我通过升级服务器、增加内存解决了这个问题。

    【讨论】:

      猜你喜欢
      • 2012-11-29
      • 2015-06-15
      • 1970-01-01
      • 2017-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-11-29
      • 2017-12-17
      相关资源
      最近更新 更多