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

时间:2014-01-08 12:47:24

标签: ruby-on-rails ruby deployment rvm capistrano

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

我正在使用rvm,我遇到了一些问题。最大的问题是/usr/bin/env: ruby: No such file or directory错误。我使用gem capistrano/rvm解决了这些问题,并在Capfile中要求它并将以下行添加到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中执行它时,此命令正确运行。

提前谢谢!

4 个答案:

答案 0 :(得分:2)

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

你可以找到它here

希望它有所帮助!

答案 1 :(得分:1)

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

答案 2 :(得分:1)

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

gem install bundler

答案 3 :(得分:0)

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

的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'
...