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

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

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

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

Q&A

2回答

720閲覧

音声ファイルの保存/localではOK/herokuでは出来ない

notsuki

総合スコア7

Ruby on Rails 6

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

Heroku

HerokuはHeroku社が開発と運営を行っているPaaSの名称です。RubyやNode.js、Python、そしてJVMベース(Java、Scala、Clojureなど)の複数のプログラミング言語をサポートしている。

保存

保存(save)とは、特定のファイルを、ハードディスク等の外部記憶装置に記録する行為を指します。

AWS(Amazon Web Services)

Amazon Web Services (AWS)は、仮想空間を機軸とした、クラスター状のコンピュータ・ネットワーク・データベース・ストーレッジ・サポートツールをAWSというインフラから提供する商用サービスです。

0グッド

0クリップ

投稿2020/10/15 04:32

前提・実現したいこと

プログラミングを勉強して3ヶ月弱の初心者です、どうぞよろしくお願いいたします。

web上で音声ファイルを録音・再生・保存・投稿できるページを作成しました。
localでは投稿ができるのに、herokuで試すとエラーが出てしまいます。
デプロイするとエラーが出ることもあると聞きますが。。

ファイルの保存先は、AWSのS3となっています。
画像投稿機能もありますが、そちらに関しては、問題なく保存されます。。

どうぞお知恵を貸していただけると大変助かります。
読んでいただき、ありがとうございました。

発生している問題・エラーメッセージ

Sox::Error (No such file or directory - sox. Do you have `sox' installed?):

試したこと

brew install soxをすると、既にインストールされていると出ます。

補足情報(FW/ツールのバージョンなど)

rails 6.0.0でアプリを作成しています。

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

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

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

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

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

guest

回答2

0

brewでインストールしてもローカルの環境にインストールされるだけなのでherokuの環境上にsoxがないという話では?
なのでherokuの環境側でsoxをインストールする必要があるかと。

herokuは使ったことないので細かいことはわかりませんが、ubuntuコンテナで動いてるそうなので、
中に入ってapt-get で入れれば良さそうです。

投稿2020/10/15 05:22

yu_1985

総合スコア7588

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

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

notsuki

2020/10/15 12:06

ご回答ありがとうございます。その可能性ありそうですね。 現在は、まずgitのリモートを更新して、git push heroku masterというコマンド方法でヘロクを更新しているのですが、やはり本番環境でインストールしなくてはならないのですね。 apt-getのコマンドは知りませんでした。ありがとうございます。 手探りで試したところ、 % heroku run apt-get install sox ↓ Running apt-get install sox on ⬢ アプリ名 up, run.7507 (Free) Reading package lists... Done Building dependency tree Reading state information... Done W: Not using locking for read only lock file /var/lib/dpkg/lock-frontend W: Not using locking for read only lock file /var/lib/dpkg/lock E: Unable to locate package sox と、返してくれ、できていないようです。。 もう少し探ってみようと思います。 ご回答ありがとうございました。
yu_1985

2020/10/15 12:19

apt-get updateを先にしてからだとどうですか
notsuki

2020/10/15 12:32

ご返信ありがとうございます。 % heroku run apt-get updateとすると ↓ Running apt-get update on ⬢ アプリ名... up, run.1755 (Free) Reading package lists... Done E: List directory /var/lib/apt/lists/partial is missing. - Acquire (30: Read-only file system) と返してくれました。 ちなみになのですが、apt-getに対して、heroku runを冒頭に付けなかった場合、(apt-get updateのみの場合)「command not found」と出てしまいます。少し調べたところ、macではapt-getは使えなく、代わりにhomebrewを使う、という文面をみたのですが、こちらは如何でしょうか。。 的外れのことを言っていたら申し訳ありません。
yu_1985

2020/10/15 14:45

heroku run apt-get update をしたあとに heroku run apt-get install sox してみてください。そうしたらどうでしょう? heroku run はheroku上でコマンドを実行するためのコマンドのようです。 macではapt-getは使えなく、代わりにhomebrewを使うというのは間違いではない(厳密には代わりと呼ぶのはちょっと微妙ですが)ですが、今回の問題はMac上のものではないので今回は関係ありません。
notsuki

2020/10/15 15:32

お返事ありがとうございます。。 >>今回の問題はMac上のものではないので今回は関係ありません。  なるほどです。承知しました。ありがとうございます。。! >>heroku run apt-get updateの後にheroku run apt-get install sox  やってみましたら、以下のように返してくれました。 % heroku run apt-get update Running apt-get update on ⬢ アプリ名... up, run.6448 (Free) Reading package lists... Done E: List directory /var/lib/apt/lists/partial is missing. - Acquire (30: Read-only file system) % heroku run apt-get install sox Running apt-get install sox on ⬢ アプリ名... up, run.3809 (Free) Reading package lists... Done Building dependency tree Reading state information... Done W: Not using locking for read only lock file /var/lib/dpkg/lock-frontend W: Not using locking for read only lock file /var/lib/dpkg/lock E: Unable to locate package sox と言った感じです。アプリをみにいきますと、まだerrorが出ておりましたので、ログを確認してみますと、 ↓ ★音声ファイルをアプリ内で投稿したとき 2020-10-15T15:09:44.184823+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] Started POST "/tweets/21/comments" for 27.85.114.34 at 2020-10-15 15:09:44 +0000 2020-10-15T15:09:44.185907+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] Processing by CommentsController#create as HTML 2020-10-15T15:09:44.186031+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] Parameters: {"authenticity_token"=>"vXDYdt6b+NN1kUc5N889qjdUb9OU2z/QLHvy+XGUmYcyYoxBVveS5IcNEFgM+/YLpGBpdaBvwEZhOP1tidq5YA==", "comment"=>{"text"=>"", "audio_file"=>#<ActionDispatch::Http::UploadedFile:0x00005588f2781240 @tempfile=#<Tempfile:/tmp/RackMultipart20201015-4-j15xq7.wav>, @original_filename="test (54).wav", @content_type="audio/wav", @headers="Content-Disposition: form-data; name=\"comment[audio_file]\"; filename=\"test (54).wav\"\r\nContent-Type: audio/wav\r\n">}, "commit"=>"おくる", "tweet_id"=>"21"} 2020-10-15T15:09:44.192931+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] User Load (2.3ms) SELECT `users`.* FROM `users` WHERE `users`.`id` = 11 ORDER BY `users`.`id` ASC LIMIT 1 ★エラーを教えてくれているところ 2020-10-15T15:09:44.198979+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] Completed 500 Internal Server Error in 13ms (ActiveRecord: 2.3ms | Allocations: 1552) 2020-10-15T15:09:44.200250+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] 2020-10-15T15:09:44.200251+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] Sox::Error (No such file or directory - sox. Do you have `sox' installed?): 2020-10-15T15:09:44.200251+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] 2020-10-15T15:09:44.200252+00:00 app[web.1]: [92ee4f78-8582-47aa-958c-24fc0ae5a623] app/controllers/comments_controller.rb:4:in `create' 2020-10-15T15:09:44.204417+00:00 heroku[router]: at=info method=POST path="/tweets/21/comments" host=tsunagarupost.herokuapp.com request_id=92ee4f78-8582-47aa-958c-24fc0ae5a623 fwd="27.85.114.34" dyno=web.1 connect=0ms service=1929ms status=500 bytes=1827 protocol=https ★アドバイスをいただいて、コマンドを打ったとき 2020-10-15T15:11:31.886777+00:00 app[api]: Starting process with command `apt-get install sox` by user ユーザー名 2020-10-15T15:11:46.905161+00:00 heroku[run.7221]: State changed from starting to up 2020-10-15T15:11:47.296023+00:00 heroku[run.7221]: Awaiting client 2020-10-15T15:11:47.320046+00:00 heroku[run.7221]: Starting process with command `apt-get install sox` 2020-10-15T15:11:52.559936+00:00 heroku[run.7221]: Process exited with status 100 2020-10-15T15:11:52.595506+00:00 heroku[run.7221]: State changed from up to complete 長くなってしまい、申し訳ありません。。ご迷惑おかけします。。
notsuki

2020/10/17 03:13

遅くなってしまい申し訳ございません。 丁寧にお付き合いくださり、本当にありがとうございます。。 ご指導通りやってみたところ、同じようなコードが返ってきてしまいました。 ↓ %heroku run bash Running bash on ⬢ アプリ名... up, run.4465 (Free) ~ $ heroku run apt-get update bash: heroku: command not found ~ $ apt-get update Reading package lists... Done E: List directory /var/lib/apt/lists/partial is missing. - Acquire (30: Read-only file system) ~ $ apt-get install sox Reading package lists... Done Building dependency tree Reading state information... Done W: Not using locking for read only lock file /var/lib/dpkg/lock-frontend W: Not using locking for read only lock file /var/lib/dpkg/lock E: Unable to locate package sox soxをheroku上で使うのは難しいということなのでしょうか。。涙
notsuki

2020/10/17 15:35

ご回答ありがとうございます。 自己責任と書いてありましたね(><) 試してみようか迷うところではありますが、サポート外のものを使うのはあまり良くなさそうですね。。 今回教えていただいたものも含めて、もう少し模索してみようかと思います。 お心遣いをいただき、ありがとうございました。。!
guest

0

まずは、/heroku が存在するのか、書き込み権限があるのかを調べてみましょう

投稿2020/10/15 04:37

y_waiwai

総合スコア88042

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

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

notsuki

2020/10/15 07:29

ご回答ありがとうございます。 初心者なもので、いただいた回答を理解できませんでした。。 「/heroku 存在」「heroku 書き込み権限」などで検索をかけてみましたが。。 予測でご返答をしますと、herokuへアクセスは可能で、画像のuploadも可能な状況です。 このような拙いお返事で申し訳ありません。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問