Ruby on rails Capistrano版本冲突
我正在尝试使用以下内容上载我的Rails应用程序:Ruby on rails Capistrano版本冲突,ruby-on-rails,capistrano,Ruby On Rails,Capistrano,我正在尝试使用以下内容上载我的Rails应用程序: bin/cap production deploy 但部署失败,并显示以下错误消息: You have requested: capistrano ~> 3.3.0
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
但这并没有解决问题
我不明白的是,我不知道我的应用程序“要求Capistrano3.3.0”在哪里。在我的GEM文件中,我将Capistrano设置为3.7版
除了capistrano宝石,我还使用:
gem capistrano-rails, '~> 1.2'
gem capistrano3-delayed-job, '~> 1.3'
gem capistrano-figaro-yml
我的档案位于:
有人知道我如何解决Capistrano版本的问题吗
谢谢你的帮助
Anthony尝试
bundle exec cap production deploy
尝试删除您的应用程序/.bindle
目录,然后再次运行bundle install
请按照正确的顺序执行所有步骤(不要因为您这样做而跳过任何步骤)
cd
到项目目录中bundle exec gem uninstall capistrano-a
从您的bundle中删除所有capistrano版本gem uninstall capistrano-a
从系统中删除所有capistrano版本。请注意,如果收到错误消息,您可能需要使用root访问权限运行此操作bundle安装
bundle exec gem list capistrano
,它将输出所有已安装的gem,其名称包含“capistrano”。您应该只有一个版本的capistrano gemlock 3.x.x
指令,请签入文件config/deploy.rb和config/deploy/*.rb,并确保它与步骤5中显示的安装版本匹配bundle exec cap production deploy在bundle上下文中运行cap(准确地使用此命令行,不要使用bin/cap)
删除gemfile.lock,然后捆绑安装并重试!已尝试,但收到相同的错误消息。问题是错误显示我使用的是Capistrano3.3.0,而Gemfile.lock的版本是3.7.1。但是我在我的文件中找不到这个版本3.3.0。我遗漏了什么吗?可能需要3.7.1作为依赖项,运行
gem list
查看已安装的gem列表,然后运行gem install capistrano-v 3.7.1
我删除了.bundle目录,然后运行了bundle安装,但我仍然收到相同的错误消息您的Gemfile.lock
的内容是什么?请检查您的confing/deploy.rb
以查看您是否锁定了capistrano版本。我完成了所有步骤。capistrano 3.3.0的错误消失了。但是现在我得到了这个错误:SSHKit::Runner::ExecuteError:作为deploy@146.185.164.246:bundle exit status:137良好,因此您修复了gem问题。此“bundle exit status:137”错误与此无关。请尝试或打开新票证。是的,重新启动服务器修复了bundle exit status:137错误。非常感谢你的帮助!在其他步骤之前,我想应该先检查config/deploy以获得步骤6中提到的lock指令,这就解决了我的问题。