【发布时间】: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