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

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

新規登録して質問してみよう
ただいま回答率
85.50%
Ruby on Rails 5

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

Ruby on Rails

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

Capistrano

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

Q&A

解決済

1回答

4972閲覧

capistranoのdefault_envの(値の)設定方法に関して(pathはどこを確認して、設定するのか?)

big2017

総合スコア39

Ruby on Rails 5

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

Ruby on Rails

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

Capistrano

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

0グッド

0クリップ

投稿2018/09/16 14:09

編集2018/09/16 16:30

railsアプリのデプロイ作業をしておりますが、

$ cap production deploy

の最中に/usr/bin/env: ruby: そのようなファイルやディレクトリはありませんというエラーが発生します

エラーログ bundler:install 01 /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/shared/bundle --without development test --deployment --quiet 01 /usr/bin/env: ruby: そのようなファイルやディレクトリはありません #<Thread:0x00007fab32813b18@/Users/user/.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/user/.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/user/.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@***.**.*.***: bundle exit status: 127 (SSHKit::Runner::ExecuteError) bundle stdout: /usr/bin/env: ruby: そのようなファイルやディレクトリはありません bundle stderr: Nothing written (Backtrace restricted to imported tasks) cap aborted! SSHKit::Runner::ExecuteError: Exception while executing as user@***.**.*.***: bundle exit status: 127

$ less log/capistrano.log

DEBUG [2efa1e88] Command: cd /var/www/app/fender/releases/20180916155036 && ( 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 [f78703ad] /usr/bin/env: ruby: そのようなファイルやディレクトリはありません DEBUG [f78703ad] Finished in 0.194 seconds with exit status 127 (failed). INFO [06a59c4a] Running /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/shared/bundle --without development test --deployment --quiet as user@***.**.*.*** DEBUG [06a59c4a] Command: cd /var/www/app/fender/releases/20180916155036 && ( export RBENV_ROOT="/home/user/.rbenv" RBENV_VERSION="2.5.1" ; /home/user/.rbenv/bin/rbenv exec bundle install --path /var/www/app/fender/shared/bundle --without development test --deployment --quiet ) DEBUG [d6342b8b] /usr/bin/env: ruby: そのようなファイルやディレクトリはありません

調べた結果、 config/deploy.rbにset :default_env, { path: "ここのパスの指定の仕方がわからない" }を 設定することで治る可能性があるとのことですが、どこを見てパスを設定すれば良いか、わからないので、質問させていただきました。

config/deploy.rb

# 共通の設定をconfig/deploy.rbで記述 # config valid for current version and patch releases of Capistrano lock "~> 3.11.0" set :application, "fender" set :repo_url, "git@github.com:hoge/hoge.git" # デプロイ対象のリポジトリ set :deploy_to, '/var/www/app/hoge' set :branch, 'master' # ブランチを指定 # set :scm, :git set :deploy_via, :remote_cache set :log_level, :debug # 出力の制御 set :pty, true # sudoを使用するのに必要 set :bundle_binstubs, nil # capistrano用でbundleするのに必要 set :default_env, { path: ""} ← 該当箇所です # Shared に入るものを指定 set :linked_files, %w{config/database.yml config/secrets.yml} # シンボリックリンクを貼るファイル set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets bundle public/system public/assets} # sharedにシンボリックリンクを張るディレクトリ指定 # Unicorn set :unicorn_pid, "#{shared_path}/tmp/pids/unicorn.pid" set :keep_releases, 5 after 'deploy:publishing', 'deploy:restart' namespace :deploy do desc 'Restart application' # アプリ再起動を行うタスク task :restart do on roles(:app), in: :sequence, wait: 5 do execute :mkdir, '-p', release_path.join('tmp') execute :touch, release_path.join('tmp/restart.txt') end end # linked_files で使用するファイルをアップロードするタスク # deployが行われる前に実行する必要がある。 desc 'upload important files' task :upload do on roles(:app) do |host| execute :mkdir, '-p', "#{shared_path}/config" upload!('config/database.yml',"#{shared_path}/config/database.yml") upload!('config/secrets.yml',"#{shared_path}/config/secrets.yml") end end # webサーバー再起動時にキャッシュを削除する after :restart, :clear_cache do on roles(:web), in: :groups, limit: 3, wait: 10 do #Here we can do anything such as: within release_path do execute :rm, '-rf', release_path.join('tmp/cache') end end end # Flow の before, after のタイミングで上記タスクを実行 before :started, 'deploy:upload' after :finishing, 'deploy:cleanup' #unicorn 再起動タスク desc 'Restart application' task :restart do invoke 'unicorn:restart' # lib/capustrano/tasks/unicorn.cap 内処理を実行 end end

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 }

Gemfile

gem 'capistrano', require: false gem 'capistrano-bundler', require: false gem 'capistrano-rails', require: false gem 'capistrano-rbenv', require: false gem 'capistrano-rails-console', require: false # 手元の環境からデプロイ先のconsoleを使う https://qiita.com/zaru/items/42953ac86df29043fda0
$ 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)

defaul_envに関しては以下の記事の中に記載されています。

参考/usr/bin/env ruby no such file or directory: Using capistrano 3, capistrano/rbenv, capistrano/bundler and capistrano/rails (using rails 4)

2日たっても自分で解決することができませんでした、、すみませんが、お力添えいただけないでしょうか。
長文で失礼しました。

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

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

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

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

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

guest

回答1

0

自己解決

capfileの中のdefault_envにpathを含めることで解決しました!

set :default_env, {
rbenv_root: "#{fetch(:rbenv_custom_path)}",
path: "#{fetch(:rbenv_custom_path)}/shims:#{fetch(:rbenv_custom_path)}/bin:$PATH",
}

投稿2018/09/21 07:37

big2017

総合スコア39

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問