Capistrano 突然停止工作
capistrano suddenly stopped working
我正在使用安装了 capistrano 的 ubuntu vagrant box 来开发应用程序。
当我尝试部署时出现以下错误:
/usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:152:in `require': no such file to load -- capistrano/ext/multistage (LoadError)
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:152:in `require'
from ./config/deploy.rb:3:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:172:in `load_from_file'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:89:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `each'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from Capfile:4:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:172:in `load_from_file'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:89:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `each'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:65:in `load_recipes'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:65:in `each'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:65:in `load_recipes'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:31:in `execute!'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:14:in `execute'
from /usr/bin/cap:4
正如 google 建议我尝试重新安装 capistrano,但是由于依赖关系失败了(net-ssh 需要 ruby >= 2.0)
所以我安装了 net-ssh v2.9.2
sudo gem install net-ssh -v 2.9.2
Fetching: net-ssh-2.9.2.gem (100%)
Successfully installed net-ssh-2.9.2
1 gem installed
但是现在发生了下一个依赖错误...
我如何使 capistrano 工作的全新安装?
我需要更新版本的 ruby(apt-get install ruby 告诉我最新版本已经安装)?
或者这个错误的原因完全不同?
我在你的跟踪中看不到任何关于你使用的 ruby 版本的信息,但你确实说 "net-ssh requires ruby >= 2.0",所以你可能需要更新版本的 ruby ] 像你说的。您可以使用 ruby -v
检查您使用的 ruby 的版本。我还建议使用版本管理器,以便您可以在项目之间使用多个版本。我发现 RVM or rbenv 是很好的起点。
好吧,这很奇怪...
在 运行 流浪者提供多次(~5)次和 installing/deinstalling 多个宝石和 ruby 版本之后,下一个 "vagrant provision" 神奇地解决了这个问题。我仍然不知道为什么会出现这个错误以及是什么解决了这个问题,牛,我会结束这个问题...
我正在使用安装了 capistrano 的 ubuntu vagrant box 来开发应用程序。 当我尝试部署时出现以下错误:
/usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:152:in `require': no such file to load -- capistrano/ext/multistage (LoadError)
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:152:in `require'
from ./config/deploy.rb:3:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:172:in `load_from_file'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:89:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `each'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from Capfile:4:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:172:in `load_from_file'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:89:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `each'
from /usr/lib/ruby/vendor_ruby/capistrano/configuration/loading.rb:86:in `load'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:65:in `load_recipes'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:65:in `each'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:65:in `load_recipes'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:31:in `execute!'
from /usr/lib/ruby/vendor_ruby/capistrano/cli/execute.rb:14:in `execute'
from /usr/bin/cap:4
正如 google 建议我尝试重新安装 capistrano,但是由于依赖关系失败了(net-ssh 需要 ruby >= 2.0) 所以我安装了 net-ssh v2.9.2
sudo gem install net-ssh -v 2.9.2
Fetching: net-ssh-2.9.2.gem (100%)
Successfully installed net-ssh-2.9.2
1 gem installed
但是现在发生了下一个依赖错误... 我如何使 capistrano 工作的全新安装? 我需要更新版本的 ruby(apt-get install ruby 告诉我最新版本已经安装)? 或者这个错误的原因完全不同?
我在你的跟踪中看不到任何关于你使用的 ruby 版本的信息,但你确实说 "net-ssh requires ruby >= 2.0",所以你可能需要更新版本的 ruby ] 像你说的。您可以使用 ruby -v
检查您使用的 ruby 的版本。我还建议使用版本管理器,以便您可以在项目之间使用多个版本。我发现 RVM or rbenv 是很好的起点。
好吧,这很奇怪...
在 运行 流浪者提供多次(~5)次和 installing/deinstalling 多个宝石和 ruby 版本之后,下一个 "vagrant provision" 神奇地解决了这个问题。我仍然不知道为什么会出现这个错误以及是什么解决了这个问题,牛,我会结束这个问题...