質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.51%
unicorn

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

Ruby on Rails 5

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

Ruby on Rails

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

Capistrano

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

Q&A

1回答

1858閲覧

cap deployで /usr/bin/env: ruby: そのようなファイルやディレクトリはありませんのエラーが発生した時の解決方法

big2017

総合スコア39

unicorn

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

Ruby on Rails 5

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

Ruby on Rails

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

Capistrano

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

0グッド

1クリップ

投稿2018/09/14 10:58

編集2022/01/12 10:55

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

1Capfile 2 3# capistranoの基本動作を設定 4require "capistrano/setup" 5require "capistrano/deploy" 6 7require "capistrano/scm/git" 8install_plugin Capistrano::SCM::Git 9 10require "capistrano/rbenv" 11set :rbenv_type, :user #rbenvをシステムにインストールした or ユーザーローカルにインストールした 12set :rbenv_ruby, '2.5.1' 13 14set :rbenv_custom_path, '/home/user/.rbenv' 15# リモートサーバーで$ rbenv version 16# 2.5.1 (set by /home/user/.rbenv/version)に基づく 17 18require "capistrano/bundler" 19require "capistrano/rails/assets" 20require "capistrano/rails/migrations" 21 22Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r } 23

検索して、パス関連のエラー解決記事を読みましたが、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:

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

私も同様のエラーにて質問をあげているものです。

/usr/bin/env

が存在するかを確認したところ、私の環境ではファイルが確かにありませんでした。
mkdir、touch にて存在しないファイルを作成したところそのエラーはクリアになりました。
(ただ、その後のエラーを対応中ですが。。^^;)
参考になりましたら幸いです。

投稿2019/02/18 12:51

takoichi

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

siruku6

2020/07/07 08:05

envファイルが空ファイルでは動かないため、この対応方法ではその後対処できません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.51%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問