質問編集履歴

6 修正

big2017

big2017 score 39

2018/09/16 22:05  投稿

cap deployで /usr/bin/env: ruby: そのようなファイルやディレクトリはありませんのエラーが発生した時の解決方法
rails + unicorn + nginx + capistranoでデプロイを試みておりますが、途中でパス関係のエラーが出ています。
ローカルから
`$ bundle exec cap production deploy`
した時のエラーログです
```
bundler:install
01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/sha…
01 /usr/bin/env: ruby: そのようなファイルやディレクトリはあり...
#<Thread:0x00007fe5b520c658@/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
1: from /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as user@***.2*.9.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError)
↓log/capistrano.log
DEBUG [f1f84855] Running /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle as user@***.2*.*.***
DEBUG [f1f84855] Command: cd /var/www/app/fender/releases/20180914103209 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle )
DEBUG [a10b3279] /usr/bin/env: ruby: そのようなファイルやディレクトリはありません
```
/usr/bin/env: ruby: そのようなファイルがありませんとあり、リモートのパス関連で起こっているエラーだと思われますが、なにをしたら解決できるのかわかりません。
エラー内容をもとに、リモートで
```
$ /usr/bin/env ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
をしてみましたが、rubyはあります。。
リモートの環境
```
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0
- USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby
- EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin
- SPEC CACHE DIRECTORY: /home/user/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/user/.rbenv/gems/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "install" => "--env-shebang"
- "gemhome" => "/home/user/.rbenv/gems/2.5.0"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /home/user/.rbenv/versions/2.5.1/bin
- /home/user/.rbenv/libexec
- /home/user/.rbenv/plugins/ruby-build/bin
- /home/user/.rbenv/plugins/rbenv-communal-gems/bin
- /home/user/.rbenv/shims
- /home/user/.rbenv/bin
- /usr/local/bin
- /usr/bin
- /usr/local/sbin
- /usr/sbin
- /home/user/.local/bin
- /home/user/bin
```
```
$ gem list
*** LOCAL GEMS ***
bundler (1.16.4)
```
```
$ rbenv version
2.5.1 (set by /home/user/.rbenv/version)
```
```
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
```lang-ruby
Capfile
# capistranoの基本動作を設定
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require "capistrano/rbenv"
set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした
set :rbenv_ruby, '2.5.1'
set :rbenv_custom_path, '/home/user/.rbenv'
# リモートサーバーで$ rbenv version
# 2.5.1 (set by /home/user/.rbenv/version)に基づく
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
```
検索して、パス関連のエラー解決記事を読みましたが、gem listやgem envを確認してから、なにをいじったら良いのかわかりませんでした。
Capfileに以下を記述することは方向性としては正しいでしょうか?(これから試してみようと思います)
```
set :rbenv_ruby, File.read('.ruby-version').strip
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w[rake gem bundle ruby rails]
```
お手数おかけしますが、教えていただけますと幸いです。
参照した記事
[/usr/bin/env ruby no such file or directory:](https://stackoverflow.com/questions/19716131/usr-bin-env-ruby-no-such-file-or-directory-using-capistrano-3-capistrano-rben)
[]()
  • Ruby on Rails

    19352 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Capistrano

    318 questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

  • unicorn

    354 questions

    Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

  • Ruby on Rails 5

    5975 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

5 修正

big2017

big2017 score 39

2018/09/16 19:08  投稿

cap deployで /usr/bin/env: ruby: そのようなファイルやディレクトリはありませんのエラーが発生した時の解決方法
rails + unicorn + nginx + capistranoでデプロイを試みておりますが、途中でパス関係のエラーが出ています。
ローカルから
`$ bundle exec cap production deploy`
した時のエラーログです
```
bundler:install
     01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/sha…
     01 /usr/bin/env: ruby: そのようなファイルやディレクトリはあり...
#<Thread:0x00007fe5b520c658@/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
   1: from /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as user@***.2*.9.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError)
↓log/capistrano.log
DEBUG [f1f84855] Running /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle as user@***.2*.*.***
DEBUG [f1f84855] Command: cd /var/www/app/fender/releases/20180914103209 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle )
DEBUG [a10b3279]    /usr/bin/env: ruby: そのようなファイルやディレクトリはありません
```
/usr/bin/env: ruby: そのようなファイルがありませんとあり、リモートのパス関連で起こっているエラーだと思われますが、なにをしたら解決できるのかわかりません。
エラー内容をもとに、リモートで
```
$ /usr/bin/env ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
をしてみましたが、rubyはあります。。
リモートの環境
 
```  
$ gem environment  
RubyGems Environment:  
 - RUBYGEMS VERSION: 2.7.6  
 - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]  
 - INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0  
 - USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0  
 - RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby  
 - EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin  
 - SPEC CACHE DIRECTORY: /home/user/.gem/specs  
 - SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc  
 - RUBYGEMS PLATFORMS:  
   - ruby  
   - x86_64-linux  
 - GEM PATHS:  
    - /home/user/.rbenv/gems/2.5.0  
 - GEM CONFIGURATION:  
    - :update_sources => true  
    - :verbose => true  
    - :backtrace => false  
    - :bulk_threshold => 1000  
    - "install" => "--env-shebang"  
    - "gemhome" => "/home/user/.rbenv/gems/2.5.0"  
 - REMOTE SOURCES:  
    - https://rubygems.org/  
 - SHELL PATH:  
    - /home/user/.rbenv/versions/2.5.1/bin  
    - /home/user/.rbenv/libexec  
    - /home/user/.rbenv/plugins/ruby-build/bin  
    - /home/user/.rbenv/plugins/rbenv-communal-gems/bin  
    - /home/user/.rbenv/shims  
    - /home/user/.rbenv/bin  
    - /usr/local/bin  
    - /usr/bin  
    - /usr/local/sbin  
    - /usr/sbin  
    - /home/user/.local/bin  
    - /home/user/bin  
```  
```
$ gem env
RubyGems Environment:
 - RUBYGEMS VERSION: 2.7.6
 - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
 - INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0
 - USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0
 - RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby
 - EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin
 - SPEC CACHE DIRECTORY: /home/user/.gem/specs
 - SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc
 - RUBYGEMS PLATFORMS:
   - ruby
   - x86_64-linux
 - GEM PATHS:
    - /home/user/.rbenv/gems/2.5.0
 - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :backtrace => false
    - :bulk_threshold => 1000
    - "install" => "--env-shebang"
    - "gemhome" => "/home/user/.rbenv/gems/2.5.0"
 - REMOTE SOURCES:
    - https://rubygems.org/
 - SHELL PATH:
    - /home/user/.rbenv/versions/2.5.1/bin
    - /home/user/.rbenv/libexec
    - /home/user/.rbenv/plugins/ruby-build/bin
    - /home/user/.rbenv/plugins/rbenv-communal-gems/bin
    - /home/user/.rbenv/shims
    - /home/user/.rbenv/bin
    - /usr/local/bin
    - /usr/bin
    - /usr/local/sbin
    - /usr/sbin
    - /home/user/.local/bin
    - /home/user/bin
```
```
$ gem list
*** LOCAL GEMS ***
bundler (1.16.4)
```
```
$ rbenv version
2.5.1 (set by /home/user/.rbenv/version)
```
```
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
```lang-ruby
Capfile
# capistranoの基本動作を設定
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require "capistrano/rbenv"
set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした
set :rbenv_ruby, '2.5.1'
set :rbenv_custom_path, '/home/user/.rbenv'
# リモートサーバーで$ rbenv version
# 2.5.1 (set by /home/user/.rbenv/version)に基づく
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
```
検索して、パス関連のエラー解決記事を読みましたが、gem listやgem envを確認してから、なにをいじったら良いのかわかりませんでした。
Capfileに以下を記述することは方向性としては正しいでしょうか?(これから試してみようと思います)
```
set :rbenv_ruby, File.read('.ruby-version').strip
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w[rake gem bundle ruby rails]
```
お手数おかけしますが、教えていただけますと幸いです。
参照した記事
[/usr/bin/env ruby no such file or directory:](https://stackoverflow.com/questions/19716131/usr-bin-env-ruby-no-such-file-or-directory-using-capistrano-3-capistrano-rben)
[]()
  • Ruby on Rails

    19352 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Capistrano

    318 questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

  • unicorn

    354 questions

    Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

  • Ruby on Rails 5

    5975 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

4 追記

big2017

big2017 score 39

2018/09/16 19:06  投稿

cap deployで /usr/bin/env: ruby: そのようなファイルやディレクトリはありませんのエラーが発生した時の解決方法
rails + unicorn + nginx + capistranoでデプロイを試みておりますが、途中でパス関係のエラーが出ています。
ローカルから
`$ bundle exec cap production deploy`
した時のエラーログです
```
bundler:install
     01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/sha…
     01 /usr/bin/env: ruby: そのようなファイルやディレクトリはあり...
#<Thread:0x00007fe5b520c658@/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
   1: from /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as user@***.2*.9.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError)
↓log/capistrano.log
DEBUG [f1f84855] Running /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle as user@***.2*.*.***
DEBUG [f1f84855] Command: cd /var/www/app/fender/releases/20180914103209 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle )
DEBUG [a10b3279]    /usr/bin/env: ruby: そのようなファイルやディレクトリはありません
```
/usr/bin/env: ruby: そのようなファイルがありませんとあり、リモートのパス関連で起こっているエラーだと思われますが、なにをしたら解決できるのかわかりません。
エラー内容をもとに、リモートで
```
$ /usr/bin/env ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
をしてみましたが、rubyはあります。。
リモートの環境
 
```  
$ gem environment  
RubyGems Environment:  
 - RUBYGEMS VERSION: 2.7.6  
 - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]  
 - INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0  
 - USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0  
 - RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby  
 - EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin  
 - SPEC CACHE DIRECTORY: /home/user/.gem/specs  
 - SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc  
 - RUBYGEMS PLATFORMS:  
   - ruby  
   - x86_64-linux  
 - GEM PATHS:  
    - /home/user/.rbenv/gems/2.5.0  
 - GEM CONFIGURATION:  
    - :update_sources => true  
    - :verbose => true  
    - :backtrace => false  
    - :bulk_threshold => 1000  
    - "install" => "--env-shebang"  
    - "gemhome" => "/home/user/.rbenv/gems/2.5.0"  
 - REMOTE SOURCES:  
    - https://rubygems.org/  
 - SHELL PATH:  
    - /home/user/.rbenv/versions/2.5.1/bin  
    - /home/user/.rbenv/libexec  
    - /home/user/.rbenv/plugins/ruby-build/bin  
    - /home/user/.rbenv/plugins/rbenv-communal-gems/bin  
    - /home/user/.rbenv/shims  
    - /home/user/.rbenv/bin  
    - /usr/local/bin  
    - /usr/bin  
    - /usr/local/sbin  
    - /usr/sbin  
    - /home/user/.local/bin  
    - /home/user/bin  
```  
 
```
$ gem env
RubyGems Environment:
 - RUBYGEMS VERSION: 2.7.6
 - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
 - INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0
 - USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0
 - RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby
 - EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin
 - SPEC CACHE DIRECTORY: /home/user/.gem/specs
 - SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc
 - RUBYGEMS PLATFORMS:
   - ruby
   - x86_64-linux
 - GEM PATHS:
    - /home/user/.rbenv/gems/2.5.0
 - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :backtrace => false
    - :bulk_threshold => 1000
    - "install" => "--env-shebang"
    - "gemhome" => "/home/user/.rbenv/gems/2.5.0"
 - REMOTE SOURCES:
    - https://rubygems.org/
 - SHELL PATH:
    - /home/user/.rbenv/versions/2.5.1/bin
    - /home/user/.rbenv/libexec
    - /home/user/.rbenv/plugins/ruby-build/bin
    - /home/user/.rbenv/plugins/rbenv-communal-gems/bin
    - /home/user/.rbenv/shims
    - /home/user/.rbenv/bin
    - /usr/local/bin
    - /usr/bin
    - /usr/local/sbin
    - /usr/sbin
    - /home/user/.local/bin
    - /home/user/bin
```
```
$ gem list
*** LOCAL GEMS ***
bundler (1.16.4)
```
```
$ rbenv version
2.5.1 (set by /home/user/.rbenv/version)
```
```
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
```lang-ruby
Capfile
# capistranoの基本動作を設定
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require "capistrano/rbenv"
set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした
set :rbenv_ruby, '2.5.1'
set :rbenv_custom_path, '/home/user/.rbenv'
# リモートサーバーで$ rbenv version
# 2.5.1 (set by /home/user/.rbenv/version)に基づく
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
```
検索して、パス関連のエラー解決記事を読みましたが、gem listやgem envを確認してから、なにをいじったら良いのかわかりませんでした。
Capfileに以下を記述することは方向性としては正しいでしょうか?(これから試してみようと思います)
```
set :rbenv_ruby, File.read('.ruby-version').strip
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w[rake gem bundle ruby rails]
```
お手数おかけしますが、教えていただけますと幸いです。
参照した記事
[/usr/bin/env ruby no such file or directory:](https://stackoverflow.com/questions/19716131/usr-bin-env-ruby-no-such-file-or-directory-using-capistrano-3-capistrano-rben)
[]()
  • Ruby on Rails

    19352 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Capistrano

    318 questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

  • unicorn

    354 questions

    Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

  • Ruby on Rails 5

    5975 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

3 追記

big2017

big2017 score 39

2018/09/16 18:16  投稿

cap deployで /usr/bin/env: ruby: そのようなファイルやディレクトリはありませんのエラーが発生した時の解決方法
rails + unicorn + nginx + capistranoでデプロイを試みておりますが、途中でパス関係のエラーが出ています。
ローカルから
`$ bundle exec cap production deploy`
した時のエラーログです
```
bundler:install
     01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/sha…
     01 /usr/bin/env: ruby: そのようなファイルやディレクトリはあり...
#<Thread:0x00007fe5b520c658@/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
   1: from /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as user@***.2*.9.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError)
↓log/capistrano.log
DEBUG [f1f84855] Running /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle as user@***.2*.*.***
DEBUG [f1f84855] Command: cd /var/www/app/fender/releases/20180914103209 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle )
DEBUG [a10b3279]    /usr/bin/env: ruby: そのようなファイルやディレクトリはありません
```
/usr/bin/env: ruby: そのようなファイルがありませんとあり、リモートのパス関連で起こっているエラーだと思われますが、なにをしたら解決できるのかわかりません。
 
エラー内容をもとに、リモートで  
```  
$ /usr/bin/env ruby -v  
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]  
 
```  
をしてみましたが、rubyはあります。。  
 
リモートの環境
```
$ gem env
RubyGems Environment:
 - RUBYGEMS VERSION: 2.7.6
 - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
 - INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0
 - USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0
 - RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby
 - EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin
 - SPEC CACHE DIRECTORY: /home/user/.gem/specs
 - SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc
 - RUBYGEMS PLATFORMS:
   - ruby
   - x86_64-linux
 - GEM PATHS:
    - /home/user/.rbenv/gems/2.5.0
 - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :backtrace => false
    - :bulk_threshold => 1000
    - "install" => "--env-shebang"
    - "gemhome" => "/home/user/.rbenv/gems/2.5.0"
 - REMOTE SOURCES:
    - https://rubygems.org/
 - SHELL PATH:
    - /home/user/.rbenv/versions/2.5.1/bin
    - /home/user/.rbenv/libexec
    - /home/user/.rbenv/plugins/ruby-build/bin
    - /home/user/.rbenv/plugins/rbenv-communal-gems/bin
    - /home/user/.rbenv/shims
    - /home/user/.rbenv/bin
    - /usr/local/bin
    - /usr/bin
    - /usr/local/sbin
    - /usr/sbin
    - /home/user/.local/bin
    - /home/user/bin
```
```
$ gem list
*** LOCAL GEMS ***
bundler (1.16.4)
```
```
$ rbenv version
2.5.1 (set by /home/user/.rbenv/version)
```
```
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
```lang-ruby
Capfile
# capistranoの基本動作を設定
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require "capistrano/rbenv"
set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした
set :rbenv_ruby, '2.5.1'
set :rbenv_custom_path, '/home/user/.rbenv'
# リモートサーバーで$ rbenv version
# 2.5.1 (set by /home/user/.rbenv/version)に基づく
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
```
検索して、パス関連のエラー解決記事を読みましたが、gem listやgem envを確認してから、なにをいじったら良いのかわかりませんでした。
Capfileに以下を記述することは方向性としては正しいでしょうか?(これから試してみようと思います)
```
set :rbenv_ruby, File.read('.ruby-version').strip
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w[rake gem bundle ruby rails]
```
お手数おかけしますが、教えていただけますと幸いです。
参照した記事
[/usr/bin/env ruby no such file or directory:](https://stackoverflow.com/questions/19716131/usr-bin-env-ruby-no-such-file-or-directory-using-capistrano-3-capistrano-rben)
[]()
  • Ruby on Rails

    19352 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Capistrano

    318 questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

  • unicorn

    354 questions

    Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

  • Ruby on Rails 5

    5975 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

2 追記

big2017

big2017 score 39

2018/09/15 09:25  投稿

cap deployで /usr/bin/env: ruby: そのようなファイルやディレクトリはありませんのエラーが発生した時の解決方法
rails + unicorn + nginx + capistranoでデプロイを試みておりますが、途中でパス関係のエラーが出ています。
ローカルから
`$ bundle exec cap production deploy`
した時のエラーログです
```
bundler:install
01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/sha…
01 /usr/bin/env: ruby: そのようなファイルやディレクトリはあり...
#<Thread:0x00007fe5b520c658@/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
1: from /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as user@***.2*.9.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError)
↓log/capistrano.log
DEBUG [f1f84855] Running /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle as user@***.2*.*.***
DEBUG [f1f84855] Command: cd /var/www/app/fender/releases/20180914103209 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle )
DEBUG [a10b3279] /usr/bin/env: ruby: そのようなファイルやディレクトリはありません
```
/usr/bin/env: ruby: そのようなファイルがありませんとあり、リモートのパス関連で起こっているエラーだと思われますが、なにをしたら解決できるのかわかりません。
リモートの環境
```
$ gem env
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.6
- RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
- INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0
- USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0
- RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby
- EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin
- SPEC CACHE DIRECTORY: /home/user/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc
- RUBYGEMS PLATFORMS:
- ruby
- x86_64-linux
- GEM PATHS:
- /home/user/.rbenv/gems/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "install" => "--env-shebang"
- "gemhome" => "/home/user/.rbenv/gems/2.5.0"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /home/user/.rbenv/versions/2.5.1/bin
- /home/user/.rbenv/libexec
- /home/user/.rbenv/plugins/ruby-build/bin
- /home/user/.rbenv/plugins/rbenv-communal-gems/bin
- /home/user/.rbenv/shims
- /home/user/.rbenv/bin
- /usr/local/bin
- /usr/bin
- /usr/local/sbin
- /usr/sbin
- /home/user/.local/bin
- /home/user/bin
```
```
$ gem list
*** LOCAL GEMS ***
bundler (1.16.4)
```
```
$ rbenv version
2.5.1 (set by /home/user/.rbenv/version)
```
```
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
```lang-ruby
Capfile
# capistranoの基本動作を設定
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require "capistrano/rbenv"
set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした
set :rbenv_ruby, '2.5.1'
set :rbenv_custom_path, '/home/user/.rbenv'
# リモートサーバーで$ rbenv version
# 2.5.1 (set by /home/user/.rbenv/version)に基づく
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
```
検索して、パス関連のエラー解決記事を読みましたが、gem listやgem envを確認してから、なにをいじったら良いのかわかりませんでした。
Capfileに以下を記述することは方向性としては正しいでしょうか?(これから試してみようと思います)
```
set :rbenv_ruby, File.read('.ruby-version').strip
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w[rake gem bundle ruby rails]
```
お手数おかけしますが、教えていただけますと幸いです。
参照した記事
[/usr/bin/env ruby no such file or directory:](https://stackoverflow.com/questions/19716131/usr-bin-env-ruby-no-such-file-or-directory-using-capistrano-3-capistrano-rben)
[]()
  • Capistrano

    318 questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

  • unicorn

    354 questions

    Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

  • Ruby on Rails 5

    5975 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

  • Ruby on Rails

    19352 questions

    Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

1 補足

big2017

big2017 score 39

2018/09/14 20:43  投稿

cap deployで /usr/bin/env: ruby: そのようなファイルやディレクトリはありませんのエラーが発生した時の解決方法
rails + unicorn + nginx + capistranoでデプロイを試みておりますが、途中でパス関係のエラーが出ています。
ローカルから
`$ bundle exec cap production deploy`
した時のエラーログです
```
bundler:install
     01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/sha…
     01 /usr/bin/env: ruby: そのようなファイルやディレクトリはあり...
#<Thread:0x00007fe5b520c658@/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:10 run> terminated with exception (report_on_exception is true):
Traceback (most recent call last):
   1: from /Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:11:in `block (2 levels) in execute'
/Users/hoge/.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/sshkit-1.17.0/lib/sshkit/runners/parallel.rb:15:in `rescue in block (2 levels) in execute': Exception while executing as user@***.2*.9.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError)
↓log/capistrano.log
DEBUG [f1f84855] Running /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle as user@***.2*.*.***
DEBUG [f1f84855] Command: cd /var/www/app/fender/releases/20180914103209 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle check --path /var/www/app/fender/shared/bundle )
DEBUG [a10b3279]    /usr/bin/env: ruby: そのようなファイルやディレクトリはありません
```
/usr/bin/env: ruby: そのようなファイルがありませんとあり、リモートのパス関連で起こっているエラーだと思われますが、なにをしたら解決できるのかわかりません。
リモートの環境
```
$ gem env
RubyGems Environment:
 - RUBYGEMS VERSION: 2.7.6
 - RUBY VERSION: 2.5.1 (2018-03-29 patchlevel 57) [x86_64-linux]
 - INSTALLATION DIRECTORY: /home/user/.rbenv/gems/2.5.0
 - USER INSTALLATION DIRECTORY: /home/user/.gem/ruby/2.5.0
 - RUBY EXECUTABLE: /home/user/.rbenv/versions/2.5.1/bin/ruby
 - EXECUTABLE DIRECTORY: /home/user/.rbenv/gems/2.5.0/bin
 - SPEC CACHE DIRECTORY: /home/user/.gem/specs
 - SYSTEM CONFIGURATION DIRECTORY: /home/user/.rbenv/versions/2.5.1/etc
 - RUBYGEMS PLATFORMS:
   - ruby
   - x86_64-linux
 - GEM PATHS:
    - /home/user/.rbenv/gems/2.5.0
 - GEM CONFIGURATION:
    - :update_sources => true
    - :verbose => true
    - :backtrace => false
    - :bulk_threshold => 1000
    - "install" => "--env-shebang"
    - "gemhome" => "/home/user/.rbenv/gems/2.5.0"
 - REMOTE SOURCES:
    - https://rubygems.org/
 - SHELL PATH:
    - /home/user/.rbenv/versions/2.5.1/bin
    - /home/user/.rbenv/libexec
    - /home/user/.rbenv/plugins/ruby-build/bin
    - /home/user/.rbenv/plugins/rbenv-communal-gems/bin
    - /home/user/.rbenv/shims
    - /home/user/.rbenv/bin
    - /usr/local/bin
    - /usr/bin
    - /usr/local/sbin
    - /usr/sbin
    - /home/user/.local/bin
    - /home/user/bin
```
```
$ gem list
*** LOCAL GEMS ***
bundler (1.16.4)
```
```
$ rbenv version
2.5.1 (set by /home/user/.rbenv/version)
```
```
$ ruby -v
ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-linux]
```
```lang-ruby
Capfile
# capistranoの基本動作を設定
require "capistrano/setup"
require "capistrano/deploy"
require "capistrano/scm/git"
install_plugin Capistrano::SCM::Git
require "capistrano/rbenv"
set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした
set :rbenv_ruby, '2.5.1'
set :rbenv_custom_path, '/home/user/.rbenv'
# リモートサーバーで$ rbenv version
# 2.5.1 (set by /home/user/.rbenv/version)に基づく
require "capistrano/bundler"
require "capistrano/rails/assets"
require "capistrano/rails/migrations"
Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
```
検索して、パス関連のエラー解決記事を読みましたが、gem listやgem envを確認してから、なにをいじったら良いのかわかりませんでした。
Capfileに以下を記述することは方向性としては正しいでしょうか?(これから試してみようと思います)  
```  
set :rbenv_ruby, File.read('.ruby-version').strip  
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"  
set :rbenv_map_bins, %w[rake gem bundle ruby rails]  
```  
お手数おかけしますが、教えていただけますと幸いです。
お手数おかけしますが、教えていただけますと幸いです。
参照した記事
[/usr/bin/env ruby no such file or directory:](https://stackoverflow.com/questions/19716131/usr-bin-env-ruby-no-such-file-or-directory-using-capistrano-3-capistrano-rben)
[]()
  • Capistrano

    318 questions

    Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

  • unicorn

    354 questions

    Unicornは、汎用のRackアプリケーションサーバ。RackとWebサーバーの機能を併せ持ちます。レスポンス処理や、Nginx単体がRackの機能をサポートしていない事から、一般的にはNginx+Unicorn+Railsの構成を取って用います。

  • Ruby on Rails 5

    5975 questions

    Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

思考するエンジニアのためのQ&Aサイト「teratail」について詳しく知る