我将新的Rails应用程序部署到我的托管(Dreamhost)。 我使用Capistrano进行部署。
我跑了
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
谢谢!
答案 0 :(得分:2)
解决!
GEM_PATH存在问题,我的特定宝石未加载。
以下添加到deploy.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”
答案 1 :(得分:0)
可能是你的Gemfile中设置了rake 0.8。 rake 10.0是最后安装的版本。