DEV: such file -- omniauth/strategies/oauth2 を読み込めません (LoadError)

Discourse の開発環境で Mac 上の git pull を行ったところ、bundle install は正常に完了したものの、rake や rails コマンドを実行すると突然このエラーが出るようになりました。

gems/activesupport-6.0.3.2/lib/active_support/dependencies.rb:324:in `require': cannot load such file -- omniauth/strategies/oauth2 (LoadError)

すべての gem を削除して最初からやり直し、再インストールを試みましたが、同じエラーが繰り返し発生します。

開発環境でこの oauth2 関連の機能を無効にすることはできますか?

以下のコマンドは正常に動作します:

cd ./discourse
bundle install

しかし、例えば以下を実行するとエラーになります:

$ bundle exec rake db:create
rake aborted!
LoadError: cannot load such file -- omniauth/strategies/oauth2

昨夜からずっとこの状態で、睡眠も取れていません。

今日突然現れたこの障壁をどうすれば乗り越えられるか、教えてください。

@DBHacker さん

macOS での開発環境構築に問題があるとのこと、お聞きして残念です。確かに難しいですよね。

@DBHacker さんのために、Rails(および Discourse)が一度もインストールされたことのない Mac mini にログインしました。これはファイルサーバーとしてのみ使用している、完全にクリーンな macOS です。

macOS の開発環境構築手順をゼロから実行しました。ディレクトリの権限に関する問題や、常に厄介な cppjieba_rb gem といったいつものトラブルはありましたが、無事にインストールが完了し、最終的には以下の通りになりました:

つまり、@DBHacker さんの開発環境には何らかの破損があるようです。なぜなら、私は今日、クリーンな Mac からゼロでインストールできたからです。

この情報が、一つのデータポイントとして少しでもお役に立てれば幸いです。

…というわけで、私は Mac mini に Discourse の開発環境をもう一つ増やすことになりました :wink:

お疲れ様でした。また正常に動作するように戻せることを願っています!

わあ、@neounix さん!!

貴重なお時間を割いて対応いただき、ありがとうございます!

この Mac は完全にクリーンな状態ではなく、あなたの返信を読んでから、Ruby 2.7.1、2.6.1、2.6.5 で「ゼロから」再インストールを試みましたが、そのたびに bootsnap に関連する異なるエラーが発生しました。

シンプルな Rails アプリの生成は問題なく動作し、Discourse のバンドルも正常に動作しますが、Rails を起動すると bootsnap のエラーが繰り返し表示されます。

Ruby と Rails を完全に削除して、最初からやり直すつもりでしたが、進行中の他の Rails プロジェクトもあるため、Discourse プラグインの学習やハッキングは当面見送ることにします。

@neounix さん、お手数をかけながらも対応いただき、そしてクリーンな環境では問題なく動作することを示してくださり、改めて感謝申し上げます。

ご安心ください。ファイルサーバーの1台で別のDiscourse開発環境を構築できたので、とても楽しかったです :slight_smile:

少しでもお役に立てて嬉しいです。

@neounix さんのバージョンの画像をありがとうございます :smiling_face_with_three_hearts:

macOS の開発用インストールスクリプトが何らかの理由でアップグレードまたは正しくインストールされませんでした(おそらく以前からインストールされていたためで、クリーンな状態ではなかったためと思われますが、確信はありません。何度も左から右へと実行しました)。そのため、rvm を使用して両方の Ruby を手動でアップグレードしました(このガイド):

https://medium.com/@IanRahman/how-to-upgrade-ruby-on-a-mac-a592c6085c63

その後、Rails gem を手動で version 6.0.3.2 に更新し、./discourse ディレクトリで再度 bundle を実行しました:

本当にありがとうございます!!!!! :smiling_face_with_three_hearts: