我正在将我的新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 是最后安装的版本。