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

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

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

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

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Capistrano

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

Q&A

解決済

1回答

2531閲覧

CapistranoでRailsアプリをEC2にデプロイする際にinvalid byte sequenceエラー

ooo

総合スコア22

Ruby on Rails

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

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Capistrano

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

0グッド

0クリップ

投稿2015/05/01 09:24

編集2015/05/01 09:50

パーフェクトRubyOnRailsを読みながら環境を作っていたのですが、
vagrant上で動作しているプロジェクトをEC2(ubuntuインスタンス)に
Capistranoでデプロイしようとした際、invalid byte sequenceが発生してしまいました。

ググっていたところ、文字コードのエラーであることと、
文字コードエラーが発生しているファイルに

#encoding: utf-8

の記述をすればいいことは理解できたのですが、
どのファイルでUS-ASCIIを使用しているのか見つけられません。
ログは最下部に貼り付けておりますが、スタックトレースに吐かれているのは、
エラーを出力する部分のみのように見受けられます。

どのようにすればUS-ASCIIを使用しているファイルを見つけることができるのか、
そもそも解決方法が違う!などございましたら、ぜひご指南いただければ幸いです。

どうぞよろしくお願いいたします。

※追記
そもそも、bundlerがruby1.9を読みに行っていることが問題な気もしてきました。
というのも、ruby1.9のデフォルトエンコーディングがUS-ASCIIだそうです。
ので、ひとまずbundlerが利用するrubyのバージョン指定方法を現在調べています。

/var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/trace_output.rb:16:in block in trace_on': invalid byte sequence in US-ASCII (ArgumentError) from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/trace_output.rb:14:in map'
from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/trace_output.rb:14:in trace_on' from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:376:in trace'
from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:222:in display_exception_message_details' from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:209:in display_exception_details'
from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:198:in display_error_message' from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:185:in rescue in standard_exception_handling'
from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:176:in standard_exception_handling' from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/lib/rake/application.rb:75:in run'
from /var/www/awesome-events/shared/bundle/ruby/1.9.1/gems/rake-10.4.2/bin/rake:33:in <top (required)>' from /var/www/awesome-events/shared/bundle/ruby/1.9.1/bin/rake:23:in load'
from /var/www/awesome-events/shared/bundle/ruby/1.9.1/bin/rake:23:in `<main>'

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

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

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

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

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

guest

回答1

0

自己解決

【原因】
cap経由で利用するbundleは、
rbenvでいうところのsystem(1.9.1)側のbundlerのパスを参照してしまっており、
そのため、system(1.9.1)のrubyを参照したbundlerでrakeタスクを実行した結果、
US-ASCIIエラーを起こしていました。

【解決方法】
'capistrano/rbenv'で、
capが利用するbundlerを明示的に変えてやることによって解決しました。

投稿2015/05/01 11:12

ooo

総合スコア22

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問