Ruby on rails cap部署&x2B;rbenv:bundle:未找到命令

Ruby on rails cap部署&x2B;rbenv:bundle:未找到命令,ruby-on-rails,ruby,ruby-on-rails-4,capistrano,capistrano3,Ruby On Rails,Ruby,Ruby On Rails 4,Capistrano,Capistrano3,我在跟踪 我正在运行:“bundle exec cap生产部署” 并获取以下错误: ✔ 10 deploy@107.170.84.18 0.289s 00:21 bundler:install 01 $HOME/.rbenv/bin/rbenv exec bundle install --path /home/deploy/deploy_test1/shared/bundle --without development test --deployment --q…

我在跟踪

我正在运行:“bundle exec cap生产部署” 并获取以下错误:

    ✔ 10 deploy@107.170.84.18 0.289s
00:21 bundler:install
      01 $HOME/.rbenv/bin/rbenv exec bundle install --path /home/deploy/deploy_test1/shared/bundle --without development test --deployment --q…
      01 rbenv: bundle: command not found
      01
      01 The `bundle' command exists in these Ruby versions:
      01   2.4.0
      01
(Backtrace restricted to imported tasks)
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as deploy@107.170.84.18: bundle exit status: 127
bundle stdout: Nothing written
bundle stderr: rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.4.0

SSHKit::Command::Failed: bundle exit status: 127
bundle stdout: Nothing written
bundle stderr: rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.4.0

Tasks: TOP => deploy:updated => bundler:install
(See full trace by running task with --trace)
The deploy has failed with an error: Exception while executing as deploy@107.170.84.18: bundle exit status: 127
bundle stdout: Nothing written
bundle stderr: rbenv: bundle: command not found

The `bundle' command exists in these Ruby versions:
  2.4.0


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


 DEBUG [3de26178] Command: ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.1" ; /usr/bin/env ln -s /home/deploy/deploy_test1/shared/public/assets /home/deploy/deploy_test1/releases/20170509194018/public/assets )

  INFO [3de26178] Finished in 0.289 seconds with exit status 0 (successful).

 DEBUG [25920183] Running if test ! -d /home/deploy/deploy_test1/releases/20170509194018; then echo "Directory does not exist '/home/deploy/deploy_test1/releases/20170509194018'" 1>&2; false; fi as deploy@107.170.84.18

 DEBUG [25920183] Command: if test ! -d /home/deploy/deploy_test1/releases/20170509194018; then echo "Directory does not exist '/home/deploy/deploy_test1/releases/20170509194018'" 1>&2; false; fi

 DEBUG [25920183] Finished in 0.291 seconds with exit status 0 (successful).

 DEBUG [7b4c3ff7] Running $HOME/.rbenv/bin/rbenv exec bundle check --path /home/deploy/deploy_test1/shared/bundle as deploy@107.170.84.18

 DEBUG [7b4c3ff7] Command: cd /home/deploy/deploy_test1/releases/20170509194018 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.1" ; $HOME/.rbenv/bin/rbenv exec bundle check --path /home/deploy/deploy_test1/shared/bundle )

 DEBUG [7b4c3ff7]   rbenv: bundle: command not found

 DEBUG [7b4c3ff7]   

The `bundle' command exists in these Ruby versions:

 DEBUG [7b4c3ff7]     2.4.0

 DEBUG [7b4c3ff7]   

 DEBUG [7b4c3ff7] Finished in 0.399 seconds with exit status 127 (failed).

  INFO [3bbf2dfd] Running $HOME/.rbenv/bin/rbenv exec bundle install --path /home/deploy/deploy_test1/shared/bundle --without development test --deployment --quiet as deploy@107.170.84.18

 DEBUG [3bbf2dfd] Command: cd /home/deploy/deploy_test1/releases/20170509194018 && ( export RBENV_ROOT="$HOME/.rbenv" RBENV_VERSION="2.3.1" ; $HOME/.rbenv/bin/rbenv exec bundle install --path /home/deploy/deploy_test1/shared/bundle --without development test --deployment --quiet )

 DEBUG [3bbf2dfd]   rbenv: bundle: command not found

 DEBUG [3bbf2dfd]   

The `bundle' command exists in these Ruby versions:

 DEBUG [3bbf2dfd]     2.4.0

 DEBUG [3bbf2dfd]
“gem列表”显示:两台机器上都有bundler(1.14.6),我的生产机器和服务器上都有ruby 2.4.0。 如何进行

我正在发布我的CAP文件:

# Load DSL and set up stages
require "capistrano/setup"

# Include default deployment tasks
require "capistrano/deploy"

# Load the SCM plugin appropriate to your project:
#
# require "capistrano/scm/hg"
# install_plugin Capistrano::SCM::Hg
# or
# require "capistrano/scm/svn"
# install_plugin Capistrano::SCM::Svn
# or
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git

# If you are using rbenv add these lines:
require 'capistrano/rbenv'
set :rbenv_type, :user
set :rbenv_ruby, '2.3.1'

require 'capistrano/bundler'
require 'capistrano/rails'
require 'capistrano/passenger'

# Load custom tasks from `lib/capistrano/tasks` if you have any defined
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
my deploy.rb:

# config valid only for current version of Capistrano
lock "3.8.1"

set :application, "deploy_test1"
set :repo_url, "git@bitbucket.org:confidentialname/deploy_test1.git"

set :deploy_to, '/home/deploy/deploy_test1'

#append :linked_files, "config/database.yml", "config/secrets.yml"
append :linked_dirs, "log", "tmp/pids", "tmp/cache", "tmp/sockets", "vendor/bundle", "public/system", "public/uploads"

看起来
rbenv
被设置为运行Ruby 2.3.1。日志中有几个位置
RBENV_VERSION=“2.3.1”
。根据,您可以了解如何使用
rbenv version
进行设置。如果您想测试Ruby 2.4.0,您需要指向该版本。或者,如果您真的想在2.3.1上运行,则需要安装bundler

您要部署到的计算机上是否安装了bundler?是的,在两台计算机上运行“bundler-v”会显示bundler版本1.14.6。您可以发布capfile和deploy.rb吗?适当匿名。@will_in_wi添加了相应的文件。我不确定如何指向该新版本。在这两台机器上:ruby-v显示:ruby 2.4.0p0(2016-12-24修订版57164)[x86_64-linux]和rbenv-v显示:rbenv 1.1.0-2-g4f8925a。在~./rbenv/versions/shows上本地运行只显示了2.4.0。我在哪里设置了RBENV_VERSION=“2.3.1”?感谢您的Capfile,您已经设置了行:rbenv_ruby,'2.3.1'。将其更改为您想要的版本。@will\u in\u wi this修复了它,但不久之后出现了一个新的错误。您知道比本教程更容易将数据库连接到rails应用程序的方法吗?谢谢