Capistrano抛出/ usr / bin / env:ruby:执行deploy:migration时没有这样的文件或目录

我设置了Capistrano来部署我的应用程序。 我是按步骤制作的,所以首先我设置代码部署,所以我评论了所有角色,但是:app

我正在使用rvm ,我遇到了一些问题。 最大的问题是一个错误,说/usr/bin/env: ruby: No such file or directory 。 我使用gem capistrano/rvm解决了它们,并在capistrano/rvm要求它并将以下行添加到deploy.rb文件中:

 set :default_env, { path: "/usr/local/rvm/gems/ruby-2.0.0-p247@global/bin:$PATH" } 

一旦代码部署正确运行,我就会激活de :db角色以执行迁移。 我得到了同样的错误,但这次我找不到解决方案。

 ~$ cap production deploy:migrate … … INFO [85d6241d] Running bundle exec rake db:migrate on 10.10.51.10 DEBUG [85d6241d] Command: cd [PROJECT_SRC]/current && ( PATH=/usr/local/rvm/gems/ruby-2.0.0-p247@global/bin:$PATH RAILS_ENV=production bundle exec rake db:migrate ) DEBUG [85d6241d] /usr/bin/env: ruby: No such file or directory cap aborted! 

当我直接在shell中执行它时,此命令正确运行。

先感谢您!

最后它使用gem 'rvm1-capistrano3', require: false 。 这似乎是我的设置的最佳选择(Rails4.0.1,ruby-2.0.0-p247,capistrano3)。 它不需要特殊配置。

你可以在这里找到它。

希望它可以帮到某人!

我有类似的问题,这个gem帮了我: https : //github.com/wayneeseguin/rvm-capistrano

如果您不使用rvm,那么问题通常是您必须在服务器上手动安装bundler gem。

 gem install bundler 

你试过官方的卡皮斯特拉诺gem吗? 这对我有帮助,也许你的用例类似。

的Gemfile:

 ... gem 'capistrano', '~> 3.2.0' gem 'capistrano-rvm' gem 'capistrano-rails' ... 

Capfile:

 require 'capistrano/setup' require 'capistrano/deploy' require 'capistrano/rvm' require 'capistrano/bundler' require 'capistrano/rails/migrations' ...