2017-05-09 61 views
1

我下面https://gorails.com/deploy/ubuntu/16.04帽部署+ rbenv:捆绑:找不到命令

我运行:“捆绑EXEC帽生产部署” 并得到以下错误:

✔ 10 [email protected] 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 [email protected]: 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 [email protected]: 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 [email protected] 

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 [email protected] 

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 [email protected] 

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] 

“宝石名单”显示:两台机器上的bundler(1.14.6),以及我的生产机器和服务器上的ruby 2.4.0。 如何继续?

我张贴我的Capfile:

# 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 } 

我deploy.rb:

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

set :application, "deploy_test1" 
set :repo_url, "[email protected]: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" 
+0

您是否在要部署到的计算机上安装了捆绑软件? – Puhlze

+0

是的,运行“bundler -v”会在两台机器上显示Bundler版本1.14.6。 –

+1

你可以发布你的capfile和deploy.rb吗?适当匿名。 –

回答

2

看起来rbenv设置为运行Ruby 2.3.1。在日志中的几个地方你有RBENV_VERSION="2.3.1"。根据the rbenv documentation,您可以了解如何使用rbenv version设置。如果你想测试Ruby 2.4.0,你需要指向那个版本。另外,如果你真的想在2.3.1上运行,你需要安装捆绑器。

+0

我不确定如何指向该新版本。在两台机器上:ruby -v显示:ruby 2.4.0p0(2016-12-24修订版57164)[x86_64-linux]和rbenv -v显示:rbenv 1.1.0-2-g4f8925a。到本地去〜/ rbenv/versions /只显示2.4.0。我在哪里设置了RBENV_VERSION =“2.3.1”?谢谢 –

+1

在你的Capfile中,你有这样一行:rbenv_ruby,'2.3.1'。将其改为您想要的版本。 –

+0

@will_in_wi解决了这个问题,但之后出现了一个新的错误。 https://stackoverflow.com/questions/44008509/rake-exit-status-139。你知道一个更简单的方法来连接数据库到Rails应用程序比本教程?谢谢 –