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

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

ただいまの
回答率

90.03%

Mastodonインストール時に"rake secret"でエラーが発生する

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 2,882

oi_seafood

score 72

お世話になっております。

前提・実現したいこと

minimalインストールしたcentos7にMastodonを構築しています。
こちらのqiita記事にしたがって操作しています。

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

記事の通りに進めていたところ、rake secretを実行時にエラーが発生します。

cd ~ && git clone https://github.com/tootsuite/mastodon.git live && cd live
git checkout $(git tag | tail -n 1)
bundle install --deployment --without development test
yarn install

cp .env.production.sample .env.production
sed -i '/^REDIS_HOST=/ s/redis/localhost/' .env.production
・・・略・・・
sed -i "/^PAPERCLIP_SECRET=$/ s/$/`rake secret`/" .env.production
sed -i "/^SECRET_KEY_BASE=$/ s/$/`rake secret`/" .env.production
sed -i "/^OTP_SECRET=$/ s/$/`rake secret`/" .env.production

エラーメッセージは次の通りです。

[mastodon@mstdn live]$ rake secret
rake aborted!
Gem::LoadError: You have already activated rake 12.0.0, but your Gemfile requires rake 11.3.0. Prepending `bundle exec` to your command may solve this.
/home/mstdn/live/config/boot.rb:3:in `<top (required)>'
/home/mstdn/live/config/application.rb:1:in `require_relative'
/home/mstdn/live/config/application.rb:1:in `<top (required)>'
/home/mstdn/live/Rakefile:4:in `<top (required)>'
LoadError: cannot load such file -- bundler/setup
/home/mstdn/live/config/boot.rb:3:in `<top (required)>'
/home/mstdn/live/config/application.rb:1:in `require_relative'
/home/mstdn/live/config/application.rb:1:in `<top (required)>'
/home/mstdn/live/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

試したこととして、
エラーメッセージにあるようにbundle execを追加して実行すると次のエラーメッセージが出ます。

[mastodon@mstdn live]$ bundle exec rake secret
rake aborted!
NameError: uninitialized constant Annotate
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:50:in `block in load_missing_constant'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `block in with_bootsnap_fallback'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:14:in `without_bootsnap_cache'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:8:in `rescue in with_bootsnap_fallback'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:6:in `with_bootsnap_fallback'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:50:in `load_missing_constant'
/home/mstdn/live/lib/tasks/auto_annotate_models.rake:43:in `<top (required)>'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `load'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `load'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:654:in `block in run_tasks_blocks'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:654:in `each'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:654:in `run_tasks_blocks'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/application.rb:443:in `run_tasks_blocks'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:457:in `load_tasks'
/home/mstdn/live/Rakefile:6:in `<top (required)>'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
/home/mstdn/.rbenv/versions/2.4.1/bin/bundle:22:in `load'
/home/mstdn/.rbenv/versions/2.4.1/bin/bundle:22:in `<main>'
NameError: uninitialized constant Annotate
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:50:in `block in load_missing_constant'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:6:in `with_bootsnap_fallback'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/active_support.rb:50:in `load_missing_constant'
/home/mstdn/live/lib/tasks/auto_annotate_models.rake:43:in `<top (required)>'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `load'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/bootsnap-0.2.14/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `load'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:654:in `block in run_tasks_blocks'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:654:in `each'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:654:in `run_tasks_blocks'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/application.rb:443:in `run_tasks_blocks'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/railties-5.0.3/lib/rails/engine.rb:457:in `load_tasks'
/home/mstdn/live/Rakefile:6:in `<top (required)>'
/home/mstdn/live/vendor/bundle/ruby/2.4.0/gems/rake-11.3.0/exe/rake:27:in `<top (required)>'
/home/mstdn/.rbenv/versions/2.4.1/bin/bundle:22:in `load'
/home/mstdn/.rbenv/versions/2.4.1/bin/bundle:22:in `<main>'
(See full trace by running task with --trace)

どうすればrake secretが実行できるようになりますか。
よろしくお願いします。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+2

ソースコード(Gemfile) を確認しましたが、annotate gem がdevelopment グループに入っていますね

なので、そのグループをbundle install から除外してしまうと、当該モジュール・クラスを利用しているところでエラーが発生します

一時的な対処法としては: gem の記述をグローバルに、development グループから外すことで、動作させることができるようになるかもしれません

簡単に調べてみましたが、何か参考になれば幸いです

 Links

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2017/05/24 14:05

    お世話になっております。公式のセットアップ手順と併せて一度最初からやったところ、rake secretでこけることなくできました。うまくいかない原因はいまいちわかりませんでしたが、解決とさせていただきます。ありがとうございました。

    キャンセル

  • 2017/07/28 16:42

    RAILS_ENVを設定していない場合はdevelopmentの環境が指定されるみたいなので
    $ RAILS_ENV=production bundle exec rake secret
    とすれば行けたのかなと思います。
    私の場合はこの指定で行けました。

    キャンセル

  • 2017/10/02 02:42 編集

    ありがとうございます。仰る通りのやり方でできました。
    .env.production.sampleの該当箇所にもそう書いてありますね...

    キャンセル

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

  • ただいまの回答率 90.03%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る