使用 Capistriano 部署时出现 Rake 版本错误:Cap shell 与 SSH 不同



我正在将我的新Rails应用程序部署到我的主机(Dreamhost)。我正在使用卡皮斯特拉诺进行部署。

我跑了 cap deploy没有问题

当我尝试运行上限部署:迁移时,我收到以下错误:在任何来源中都找不到 rake-10.0.3

为了检查发生了什么,我使用了

cap shell
    which rake
    --> /home/myUser/.gems/bin/rake
    /home/myUser/.gems/bin/rake -V
    --> rake, version 0.8.7

但是,当我从ssh检查相同的信息时,我得到

$ which rake
-->/home/myuser/.gems/bin/rake
$ /home/myuser/.gems/bin/rake -V
-->rake, version 10.0.3

我怎么可能得到这两个不同的结果?知道吗?

如果有帮助,我添加我的 deploy.rb 文件:

default_run_options[:pty] = true
set :user, 'XXX'
set :domain, 'XXX'
set :application, 'XXX'
set :repository,  "git@bitbucket.org:XXX"
set :deploy_to, "/home/#{user}/XXX"
set :deploy_via, :remote_cache
set :scm, 'git'
set :branch, 'master'
set :git_shallow_clone, 1
set :scm_verbose, true
set :use_sudo, false

default_environment["PATH"] = "/home/myUser/.gems/bin:$PATH"
set :shell, '/bin/bash'
server domain, :app, :web
role :db, domain, :primary => true
set :ssh_options, { :forward_agent => true }
namespace :deploy do
  task :restart do
    run "touch #{current_path}/tmp/restart.txt"
  end
end

谢谢!

解决了!

GEM_PATH存在问题,我的特定宝石未加载。

以下添加到部署.rb

default_environment["GEM_PATH"] ="/home/myUser/.gems:/usr/lib/ruby/gems/1.8"default_environment["PATH"] = "/home/myUser/.gems/bin:/usr/lib/ruby/gems/1.8/bin/:$PATH"

可能是耙子 0.8 设置在你的宝石文件中。而 rake 10.0 是最后安装的版本。

最新更新