【问题标题】:stderr /usr/local/bin/bundle: argument list too long while bundle installstderr /usr/local/bin/bundle: 安装包时参数列表太长
【发布时间】:2016-08-25 13:50:26
【问题描述】:

我正在使用 ansible 为我的 rails 应用程序进行部署。问题是当添加一个新的 gem 并且 ansible 运行 bundle install 时,它会给出以下错误:

stderr /usr/local/bin/bundle: argument list too long
/usr/local/bin/bundle: line 7: /usr/local/bin/bundle: success

进行捆绑安装的ansible任务是

- name: Bundle install
  command: 'bundle install --deployment --without development test'
  register: bundler
  args:
    chdir: '/home/ubuntu/myproject'

我正在使用 rvm 来管理 ruby​​ 版本。使用 ruby​​-2.2.1 并且我已将 rvm 设置为使用 myproject 的 gemset,即rvm use ruby-2.2.1@myproject

.rvm/gems/ 目录有 ruby-2.2.1/ ruby-2.2.1@global/ ruby-2.2.1@myproject/

我已指定passenger_ruby /home/ubuntu/.rvm/wrappers/ruby-2.2.1@myproject/ruby

只有在 Gemfile 中添加新的 gem 时才会发生这种情况,当只有代码更新时,一切正常。如果我运行bundle install 明确地对相应实例执行 ssh,它可以正常工作并安装 gem。 对此有何帮助和建议?

【问题讨论】:

  • 我对 Ansible 了解不多,但只是形成错误消息,我认为它不是拾取您的 rvm-version 捆绑器,而是一个系统捆绑器(在 /usr/local 中)。也许这可能是问题所在。

标签: ruby-on-rails ruby rubygems passenger ansible


【解决方案1】:

我有问题。问题与脚本使用的捆绑包路径有关/usr/local/bin/bundle,但它应该来自/home/ubuntu/.rvm/gems/ruby-2.2.1@myproject/bin/bundle

ansible的正确任务是

- name: Bundle install
  command: bundle install --without development test
  args:
    chdir: /home/ubuntu/myproject
    executable: /home/ubuntu/.rvm/gems/ruby-2.2.1@myproject/bin/bundle
  environment:
    GEM_HOME:  /home/ubuntu/.rvm/gems/ruby-2.2.1@myproject
    GEM_PATH:  /home/ubuntu/.rvm/gems/ruby-2.2.1@myproject:/home/ubuntu/.rvm/gems/ruby-2.2.1@global

【讨论】:

    猜你喜欢
    • 2011-03-12
    • 2014-08-30
    • 2015-04-27
    • 2018-07-24
    • 1970-01-01
    • 2021-11-16
    • 2020-05-08
    • 1970-01-01
    • 2023-04-03
    相关资源
    最近更新 更多