首页 > 解决方案 > Capistrano 无法加载此类文件 -- net/scp (LoadError)

问题描述

尝试在 DigitalOcean 上部署我的项目时出错。当我通过 deploy@ip 运行命令“cap production deploy”时 - 得到这个错误:

/usr/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require': cannot load such file -- net/scp (LoadError)

这是我本地路径中的 gemfile 的一部分:

 gem 'capistrano', '~> 3.11', require: "net-scp"
gem 'capistrano-rails', '~> 1.4'
gem 'capistrano-passenger', '~> 0.2.0'
gem 'capistrano-rbenv', '~> 2.1', '>= 2.1.4'
gem "capistrano-sidekiq"
gem "capistrano-db-tasks", require: false
gem 'net-scp', '~> 3.0'
gem 'net-ssh', '~> 6.1'

如您所见 - 我的所有 gem 都已安装,但这个错误仍然困扰着我。注意:但正如您从错误字符串中看到的那样 - 它还放置了旧 ruby​​ (ruby/2.7.0) 的路径,所以问题可能出在此,但我不确定。

标签: ruby-on-railscapistranodigital-ocean

解决方案


使用以下 gem 修改您的 gem 文件。

在开发组中添加这个宝石。

gem 'capistrano', '~> 3.10', require: false
gem 'capistrano-rails', '~> 1.5', require: false
gem 'capistrano-rbenv', '~> 2.1'
gem 'capistrano-db-tasks', require: false

之后运行: -

bundle install

然后在终端中运行以下命令生成部署配置文件。

 bundle exec cap install

推荐阅读