【问题标题】:LoadError: cannot load such file -- bundler/setup capistranoLoadError: 无法加载这样的文件 -- bundler/setup capistrano
【发布时间】:2018-06-29 19:14:45
【问题描述】:

编辑#1

这是日志

** DEPLOY FAILED
** Refer to log/capistrano.log for details. Here are the last 20 lines:


 DEBUG [d8da8d91] Command: if test ! -d /home/poladmin/poetry_out_loud_v2/releases/20180629192529; then echo "Directory does not exist '/home/poladmin/poetry_out_loud_v2/releases/20180629192529'" 1>&2; false; fi

 DEBUG [d8da8d91] Finished in 0.495 seconds with exit status 0 (successful).

  INFO [64734ae3] Running $HOME/.rbenv/bin/rbenv exec rake assets:precompile as poladmin@196.28.51.162

 DEBUG [64734ae3] Command: cd /home/poladmin/poetry_out_loud_v2/releases/20180629192529 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.5.1" RAILS_ENV="production" RAILS_GROUPS="" ; $HOME/.rbenv/bin/rbenv exec rake assets:precompile )

 DEBUG [64734ae3]       rake aborted!

Bundler::GemNotFound: Could not find rake-12.3.1 in any of the sources

 DEBUG [64734ae3]       /home/poladmin/poetry_out_loud_v2/releases/20180629192529/config/boot.rb:3:in `<top (required)>'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/config/application.rb:1:in `require_relative'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/config/application.rb:1:in `<top (required)>'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/Rakefile:4:in `require_relative'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/Rakefile:4:in `<top (required)>'

 DEBUG [64734ae3]

Caused by:

 DEBUG [64734ae3]       LoadError: cannot load such file -- bundler/setup

 DEBUG [64734ae3]       /home/poladmin/poetry_out_loud_v2/releases/20180629192529/config/boot.rb:3:in `<top (required)>'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/config/application.rb:1:in `require_relative'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/config/application.rb:1:in `<top (required)>'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/Rakefile:4:in `require_relative'

/home/poladmin/poetry_out_loud_v2/releases/20180629192529/Rakefile:4:in `<top (required)>'

bundler gem 已安装在服务器上。

原始问题

所以我尝试使用 capistrano 将我的应用程序推送到服务器,但是,我收到了 rake gem 的LoadError: cannot load such file -- bundler/setup 错误,但是,本地安装了 rake。这是 Gemfile:

source 'https://rubygems.org'
git_source(:github) { |repo| "https://github.com/#{repo}.git" }

ruby '2.5.1'

gem 'rails', '~> 5.2.0'
gem 'puma', '~> 3.11'
gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0'
gem 'rake', '~> 12.3', '>= 12.3.1'
# See https://github.com/rails/execjs#readme for more supported runtimes
# gem 'mini_racer', platforms: :ruby

gem 'coffee-rails', '~> 4.2'
gem 'turbolinks', '~> 5'
gem 'jbuilder', '~> 2.5'
# Use Redis adapter to run Action Cable in production
# gem 'redis', '~> 4.0'
# Use ActiveModel has_secure_password
# gem 'bcrypt', '~> 3.1.7'

gem 'bootsnap', '>= 1.1.0', require: false
gem 'mongoid'

group :development, :test do
  gem 'byebug', platforms: [:mri, :mingw, :x64_mingw]
end

group :development do
  gem 'web-console', '>= 3.3.0'
  gem 'listen', '>= 3.0.5', '< 3.2'
  gem 'spring'
  gem 'spring-watcher-listen', '~> 2.0.0'

  gem 'capistrano', '~> 3.7', '>= 3.7.1'
  gem 'capistrano-rails', '~> 1.2'
  gem 'capistrano-passenger', '~> 0.2.0'
  gem 'capistrano-rbenv', '~> 2.1'
end


# Windows does not include zoneinfo files, so bundle the tzinfo-data gem
gem 'tzinfo-data', platforms: [:mingw, :mswin, :x64_mingw, :jruby]

感谢任何帮助。

【问题讨论】:

  • 您的服务器中是否安装了bundler?你能在运行任何 rake 任务之前gem install bundler 吗?
  • 请参阅编辑 1 @LeoCorrea
  • 你试过使用 Rails binstubs 吗? (例如,运行 bin/rake 而不是普通的 rake)当路径无法解析为 gem 时,通常会发生此错误。 GEM_PATH 是否设置在您的服务器中?我看到你在使用 rbenv 设置正确吗?
  • 我正在使用 rbenv 是的,我也尝试过bundle --binstubs

标签: ruby-on-rails ruby-on-rails-5 capistrano capistrano3


【解决方案1】:

在 gemfile 中尝试 require false。

    gem "capistrano", "~> 3.7",  require: false
    gem "capistrano-rails", "~> 1.2", require: false

【讨论】:

  • 同样的错误,仍然得到Bundler::GemNotFound: Could not find rake-12.3.1 in any of the sources
【解决方案2】:

如果您使用 rbenv 或类似名称,您的捆绑程序和 gem 可能安装在与部署登录不同的环境中。你需要告诉队长。我用这个:

set :rbenv_ruby, '2.4.1'
set :rbenv_path, '/Users/stmpjmpr/.rbenv'
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} /usr/local/bin/rbenv exec"

【讨论】:

  • 对于 rbenv 路径和 rbenv 前缀,我是使用本地路径还是服务器路径?
  • 它们来自服务器上部署用户的上下文,就好像该用户已通过 SSH 登录。
  • 好的,这是我现在得到的新日志gist.github.com/benbagley/5dcd6b7d9476ba1aa2e77f0dd0375405 我还在那里添加了 Capfile。服务器正在使用 Ubuntu 桌面。
  • 第一:你是用rbenv开头的吗?看起来 rbenv 没有像在我的服务器上那样安装在您的用户目录中。将set :rebenv_path 行更改为指向rbenv 在您的系统上的位置。您可以通过 SSH 以您的部署用户身份登录并使用 which rbenv 并记下它所在的目录来确定这一点。
  • 当我设置服务器和我的本地开发时,我总是使用 rbenv,当我在服务器上执行which rbenv 时,我得到/home/poladmin/.rbenv/bin/rbenv,在我的桌面本地我得到/home/ben/.rbenv/bin/rbenv
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-10-11
  • 1970-01-01
  • 1970-01-01
  • 2015-06-14
  • 2015-03-25
相关资源
最近更新 更多