2017-02-01 155 views
2

我试图上传我的Rails应用程序有:Capistrano的版本冲突

bin/cap production deploy 

但部署与此错误消息失败:

You have requested:                  
    capistrano ~> 3.3.0                 

The bundle currently has capistrano locked at 3.7.1.          
Try running `bundle update capistrano`             

If you are updating multiple gems in your Gemfile at once,        
try passing them all to `bundle update` 

我试图通过运行来解决该问题:

bundle update capistrano 

但这并没有解决它。

我不明白的是我没有看到我的应用程序'要求capistrano 3.3.0'。在我的Gemfile中,我将Capistrano设置为3.7版本。

而且我还使用了Capistrano的宝石:

gem capistrano-rails, '~> 1.2' 
gem capistrano3-delayed-job, '~> 1.3' 
gem capistrano-figaro-yml 

我的Gemfile是:

https://github.com/acandael/personalsite/blob/master/Gemfile

是否有人知道我怎么能解决这个Capistrano的版本问题?

感谢您的帮助,

安东尼

+0

什么是你'Gemfile中的内容。罗ck'? – Markus

+0

尝试检查你的'confing/deploy.rb',看看你是否锁定了capistrano版本。 – ShallmentMo

回答

1

请按正确的顺序所有步骤(不跳过任何,因为你做到了)

  1. cd到你的项目目录
  2. 运行bundle exec gem uninstall capistrano -a从你的包
  3. 运行gem uninstall capistrano -a删除所有Capistrano的版本从系统删除所有Capistrano的版本。请注意,您可能需要以root权限运行这个,如果你得到一个错误信息
  4. 运行bundle install
  5. 运行bundle exec gem list capistrano这应该输出所有包含“Capistrano的一个名为”安装宝石。你应该有只有一个Capistrano的宝石
  6. 检查版本文件配置/ deploy.rb配置/部署/ *。RB如果你有一个lock 3.x.x指令,并确保它匹配的步骤中包上下文与bundle exec cap production deploy安装版本显示5
  7. 运行帽(使用此命令行究竟,不使用斌/ CAP)
+0

我做了所有的步骤。 capistrano 3.3.0的错误消失了。但是现在我得到这个错误:SSHKit :: Runner :: ExecuteError:以[email protected]执行时出现异常:bundle退出状态:137 – Toontje

+0

好,所以您修复了gem问题。此“捆绑退出状态:137”错误是无关的。尝试http://stackoverflow.com/questions/23390311/rails-4-1-cant-deploy-via-capistrano-3否则打开一张新票。 – Benj

+0

是的,事实证明,重新启动服务器修复了束退出状态:137错误。非常感谢你的帮助! – Toontje

0

尝试bundle exec cap production deploy

+0

已经尝试过,没有解决它 – Toontje

+0

删除你的gemfile.lock然后绑定安装并重试! –

+0

尝试过,但得到相同的错误信息。问题是,错误说我有capistrano 3.3.0,而Gemfile.lock的版本是3.7.1。但是我在Gemfile中找不到这个版本3.3.0。我错过了什么吗? – Toontje

0

尝试删除YOUR_APP/.bindle目录,然后再次运行bundle install

+0

我删除了.bundle目录并且运行bundle install,但是我我仍然得到相同的错误信息 – Toontje