Install Discourse on macOS for development

M1 Mac で Discourse を開発用にセットアップするのに問題があります。

fast_xs と gc_tracer の gem が、ほぼ同様のエラーでインストールに失敗します。以下に fast_xs のエラーメッセージを貼り付けました。どなたか助けていただけますか?

Building native extensions. This could take a while...
ERROR: Error installing fast_xs:
	ERROR: Failed to build gem native extension.

    current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
/Users/sisirkoppaka/.rubies/ruby-3.2.0/bin/ruby -I /Users/sisirkoppaka/.rubies/ruby-3.2.0/lib/ruby/site_ruby/3.2.0 extconf.rb
checking for assert.h... yes
creating Makefile

current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7 clean

current directory: /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0/ext/fast_xs
make DESTDIR\= sitearchdir\=./.gem.20240203-10621-j9d0j7 sitelibdir\=./.gem.20240203-10621-j9d0j7
compiling fast_xs.c
fast_xs.c:144:39: error: incompatible function pointer types passing 'VALUE (VALUE)' (aka 'unsigned long (unsigned long)') to parameter of type 'VALUE (*)(VALUE, VALUE)' (aka 'unsigned long (*)(unsigned long, unsigned long)') [-Wincompatible-function-pointer-types]
  144 |         array = rb_rescue(unpack_utf8, self, unpack_uchar, self);
      |                                              ^~~~~~~~~~~
/Users/sisirkoppaka/.rubies/ruby-3.2.0/include/ruby-3.2.0/ruby/internal/iterator.h:364:62: note: passing argument to parameter 'r_proc' here
  364 | VALUE rb_rescue(VALUE (*b_proc)(VALUE), VALUE data1, VALUE (*r_proc)(VALUE, VALUE), VALUE data2);
      |                                                              ^
1 error generated.
make: *** [fast_xs.o] Error 1

make failed, exit code 2

Gem files will remain installed in /Users/sisirkoppaka/.gem/ruby/3.2.0/gems/fast_xs-0.8.0 for inspection.
Results logged to /Users/sisirkoppaka/.gem/ruby/3.2.0/extensions/arm64-darwin-22/3.2.0-static/fast_xs-0.8.0/gem_make.out```

これはどのように解決されましたか?

実行時に

bundle exec rake db:create
bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate

RedisとPostgresサーバーの両方を起動した後、以下のエラーが発生します。

fe_sendauth: no password supplied
'discourse_development' データベースを作成できませんでした。設定を確認してください。
rake aborted!

RedisとPostgresサーバーを起動せずにこれを行うと、以下のエラーが発生します。

bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate
Redisに接続できませんでした
rake aborted!

どうすればよいか教えていただけますか。途方に暮れています。

よろしくお願いします。

これまでのところ、以下のコマンドで解決できました。

bundle config build.fast_xs --with-cflags="-Wno-incompatible-pointer-types"
bundle config build.gc_tracer --with-cflags="-Wno-incompatible-pointer-types"
bundle install

これらの必須ではない gem を両方とも削除することにしました。

および

「いいね!」 3

このオプションを呼び出した後、サーバーをシャットダウンするにはどうすればよいですか?

これは(もう)機能しないようです。以下のエラーが出ています。

fatal: couldn't find remote ref master

ローカルの変更を上書きするバージョン(2投稿下)も機能しません。

macOSのDiscourse開発環境をアップグレードする方法について、何かアイデアはありますか?

master はしばらく前に main にリネームされました。以下をお試しください。

cd ~/discourse
git pull origin main
「いいね!」 4

サイモン、ありがとう、助かりました。

gitコマンドを実行できましたが、途中で開発環境を壊してしまいました。現在、開発環境が壊れており、Discourseの開発ホームページは表示されますが、何も機能しないようです(「新規トピック」が延々と回転しています)。

Discourseの開発インストールをリセットまたはクリーンインストールする最も簡単な方法はありますか?

このトピックの冒頭にあったインストールコマンドを再実行しようとしましたが(pnpm install コマンドで失敗します)、うまくいきませんでした。また、このトピックでArpitが以前提案した rake db:drop db:create db:migrate を実行しましたが、これも成功しませんでした。

pnpmとnodeのインストールを npm install -g pnpmbrew install node を実行して更新できたため、再度インストール手順を実行できました。しかし、現在以下のビルドエラーが発生しています。

Module not found: Error: Can't resolve '@ember/debug' in '/Users/pieces/discourse/app/assets/javascripts/node_modules/ember-tracked-storage-polyfill/addon/index.js'

npm install -g pnpm を実行した後、pnpm install を実行しましたか?

パッケージ管理に pnpm を使用することへの変更に関する詳細は、こちらにあります: Discourse core is switching to pnpm for JS package management.

「いいね!」 2

はい、実行しましたが、まだエラーが発生しています。

以下の手順を実行しました。

  1. Macでパッケージを更新しました(初期スクリプトを再実行しました)。
  2. bundle install を実行しました。
  3. pnpm install を実行しました。
  4. bundle exec rake db:create
    bundle exec rake db:migrate
    RAILS_ENV=test bundle exec rake db:create db:migrate を実行しました。
  5. bundle exec rails server を実行しました。
  6. 別のターミナルウィンドウで bin/ember-cli を実行しました。

手順6を実行するとエラーが発生します。

提供されたリンクの詳細を見ると、Yarnで管理されているNodeモジュールがpnpmに正しく変換されていないように思われますか? 'node_modules’フォルダを手動で削除することについて言及されています。しかし、これは新しいgit pullで対処されるべきですよね?

手順6からのエラーは以下の通りです。

原因究明に役立つのであれば、言及されたエラーログを共有できます。

macOS システムがないため、このテストはできません。ただし、最近 Arch Linux システムで Discourse のローカルインスタンスを更新しました。JavaScript の依存関係の処理方法は、どちらのシステムでも同様であると予想されます。

それは正しくないと思います。node_modules ディレクトリは git で追跡されていません。node モジュールは pnpm install を実行したときにインストールされます。

これが正しいことを保証することはできませんが、もし私がエラーを受け取った場合、依存関係を削除してから再インストールします。

rm -rf node_modules app/assets/javascripts/*/node_modules

pnpm install

ember-tracked-storage-polyfilldiscourse/node_modules の直接の配下にあると思いますが、上記で投稿したコマンド全体を実行しても安全なはずです。

エラーが返された場合は、詳細ログ付きで pnpm install を実行することもできます。

pnpm install --reporter=silent --loglevel=verbose

依存関係を削除して再インストールしましたが、提供されたコマンドは正常に機能しました。pnpm をエラーなく削除およびインストールします。

ただし、bin/ember-cli を実行すると、同じエラーが引き続き発生します。

Discourse の開発環境のインストールを完全に削除し、Git からクリーンなプルを実行してクリーンなインストールを実行する方法はありますか?

開発環境のデータが失われても構いません。

rm -rf ~/discourse を実行すると、Discourseのソースコードを完全に削除できます。その後、インストールの「Discourseをクローンする」ステップからインストールガイドに従ってください:Install Discourse on macOS for development

「いいね!」 2

うまくいきました!

サイモン、辛抱強く付き合ってくれてありがとう。諦めないでくれて感謝しています :slight_smile:

「いいね!」 2

素晴らしい!問題は、/discourse/tmp/cache/assets/sprockets/ ディレクトリに以前コンパイルされたキャッシュされたアセットに関連していたと推測します。おそらく、以下のコマンドを実行することで問題を解決できた可能性があります。

rm -rf ~/discourse/tmp/cache/

ただし、これはあくまで推測です。

「いいね!」 3

これらの指示に従っても、あまりうまくいきません。何か(プラグイン、テーマ、テーマコンポーネント)をインストールしようとすると500エラーが発生するため、動作する環境が提供されていません。ウィザードが正常に機能していないようです。すでに10回ほどインストールし、依存関係をアンインストールして再インストールしました。autospecを実行すると、多くの失敗が発生しますが、それらに関する情報はあまり得られません。このシステムを機能的に稼働させるためのアイデアを歓迎します。

よろしくお願いします!

Discourse Development READMEから始めた方で、ここに来た方へ。初めて依存関係を設定する場合は、READMEにPostgreSQL 13と記載されていますが、PostgreSQL 14以降をお勧めします。

なぜか?データベースを設定してマイグレーションを実行すると、マイグレーションのいずれかでpgvector拡張機能にアクセスしようとしたときに失敗します。PostgreSQL 13にpgvectorをインストールするのは少し面倒です。しかし、PostgreSQL 14をインストールしてからpgvectorをインストールすれば、すべてうまくいくでしょう。

どちらにもHomebrewをお勧めします。

brew install postgresql@14
brew install pgvector

また!このガイドの冒頭にオプションと記載されていますが、ImageMagickがインストールされていないと、初めてRailsサーバーを実行したときにエラーが発生します。

誰かの役に立てば…!

「いいね!」 3

本番環境はすでに15なので、そちらか16をお勧めします。

「いいね!」 2