Install Discourse on macOS for development

開発では、ここではアップグレードを実行しません。

ロバートさん、返信ありがとうございます。「git pull」だけでアップグレードは完了しますか?(開発環境にて)

「いいね!」 1

はい、ただし、gemとマイグレーションを忘れないでください。

git pull
bundle install
rake db:migrate
「いいね!」 2

スクリプトに問題があるようで、brew がインストールされません。
(これは新品の Mac Air M2 で発生しています)

brew を自分でインストールした後はすべて問題なく動作しました :slight_smile:

スクリプトは Ruby バージョン 3.1.3 をインストールし、その後 bundle exec が 3.2.1 を使用していないことに怒ることに注意してください :smiley:

[警告] Discourse では Ruby v3.2.1 以降での開発を推奨しています。現在 v3.1.3 を使用しています。

「いいね!」 2

もう当てはまりません!:partying_face:

「いいね!」 3

何らかの理由でRubyがインストールされません。次のようなエラーが繰り返し表示されます。

BUILD FAILED (macOS 12.5.1 using ruby-build 20230309)

Inspect or clean up the working tree at /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC
Results logged to /var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.log

Last 10 log lines:
	Check ext/psych/mkmf.log for more details.
*** Fix the problems, then remove these directories and try again if you want.
Generating RDoc documentation
/private/var/folders/f6/95l6wylj4d11_jyvyp7r9yd40000gn/T/ruby-build.20230320012216.80048.RdOmWC/ruby-3.2.1/lib/yaml.rb:3: warning: It seems your ruby installation is missing psych (for YAML output).
To eliminate this warning, please install libyaml and reinstall your ruby.
uh-oh! RDoc had a problem:
cannot load such file -- psych

run with --debug for full backtrace
make: *** [rdoc] Error 1
failed

どなたかこれを手伝っていただけませんか?

「いいね!」 1

macOS 13.2.1でも同様の問題が発生しています。

このページは、このエラーメッセージ(の一部)をGoogleで検索した際に唯一表示される結果なので、もし他の人がこのエラーに再び遭遇した場合のために共有します。

現在のRuby(3.2.1)、Rails(7.0.4.3)、およびmini_racer(0.6.3)を含むすべてのGemfile依存関係にアップグレードした後、rails sを実行した際にこの問題に直面しました。

このGitHubコメントの提案に従った後、解決しました。具体的には、.../3.2.0/gems/mini_racer-0.6.3/ext/mini_racer_extension内でmakeを実行し、生成されたmini_racer_extension.bundle.../3.2.0/extensions/x86_64-darwin-22/3.2.0/mini_racer-0.6.3にコピーしました。

なんとかビルドエラーを乗り越えることができました(何をどうしたか覚えていません…)。しかし、今度は以下のエラーで詰まっています。

An error occurred while installing pg (1.4.6), and Bundler cannot continue

bundle install の実行中です。:thinking:

追記:
エラーの上に記載されていた手順に従って解決しました。

If you need to have postgresql@13 first in your PATH, run:
  echo 'export PATH=\"/opt/homebrew/opt/postgresql@13/bin:$PATH\"' >> ~/.zshrc

For compilers to find postgresql@13 you may need to set:
  export LDFLAGS=\"-L/opt/homebrew/opt/postgresql@13/lib\"
  export CPPFLAGS=\"-I/opt/homebrew/opt/postgresql@13/include\"

For pkg-config to find postgresql@13 you may need to set:
  export PKG_CONFIG_PATH=\"/opt/homebrew/opt/postgresql@13/lib/pkgconfig\"

どれが効いたのかは分かりません! :sweat_smile:

「いいね!」 1

会社のラップトップの権限の問題により、インストールスクリプトを手動で1つずつ処理する必要があります。gem update --systemを実行しようとすると、次のエラーが発生します。

sh-3.2# gem update --system
Updating rubygems-update
Fetching rubygems-update-3.4.12.gem
Successfully installed rubygems-update-3.4.12
Parsing documentation for rubygems-update-3.4.12
Installing ri documentation for rubygems-update-3.4.12
Installing darkfish documentation for rubygems-update-3.4.12
Done installing documentation for rubygems-update after 158 seconds
Parsing documentation for rubygems-update-3.4.12
Done installing documentation for rubygems-update after 0 seconds
Installing RubyGems 3.4.12
ERROR:  While executing gem ... (Errno::EPERM)
    Operation not permitted @ rb_sysopen - /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/bin/gem
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `initialize'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `open'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1387:in `block in copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1386:in `open'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1386:in `copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:492:in `copy_file'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:860:in `block in install'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1558:in `block in fu_each_src_dest'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1574:in `fu_each_src_dest0'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:1556:in `fu_each_src_dest'
	/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/fileutils.rb:856:in `install'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:267:in `block (2 levels) in install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:251:in `chdir'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:251:in `block in install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:248:in `each'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:248:in `install_executables'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/commands/setup_command.rb:165:in `execute'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command.rb:327:in `invoke_with_build_args'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:252:in `invoke_command'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:192:in `process_args'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/command_manager.rb:150:in `run'
	/Library/Ruby/Gems/2.6.0/gems/rubygems-update-3.4.12/lib/rubygems/gem_runner.rb:51:in `run'
	setup.rb:33:in `<main>'

これを乗り越えるためのアイデアはありますか?

「いいね!」 1

M1/M2 Apple を使用しましたか?まず brew でインストールして、Ruby 3.2.x がシステムデフォルトであることを確認してください。次に、Apple Silicon の場合は、.zshrc に以下を追加してください。

  if [ -d "/opt/homebrew/opt/ruby/bin" ]; then
     export PATH=/opt/homebrew/opt/ruby/bin:$PATH
     export PATH=`gem environment gemdir`/bin:$PATH
  fi

Mac OS X にはシステム Ruby 2.x が付属しており、環境インストール スクリプトが混乱する可能性があるためです。

また、サービスの起動に問題がある場合は、以下のようなことを試してください。

  brew services restart postgresql@13
  brew services restart redis

これでうまくいきました。

「いいね!」 2

皆さん、こんにちは!こちらのインストール投稿をフォローしてきましたが、共有されたヒントのほとんどが、macOS M1のインストール中に直面していたいくつかの問題を克服するのに大いに役立ちました。

最後のBootstrap部分で詰まっています。

bundle exec rails server

上記のコマンドは私にとって機能し、localhost:3000で何かを確認し、管理者ユーザーを登録することもできましたが、bin/ember-cliを実行した後、次の例外が発生しました。

$ bin/ember-cli
warning Resolution field "unset-value@2.0.1" is incompatible with requested version "unset-value@^1.0.0"
patch-package 8.0.0
Applying patches...
@ember/jquery@2.0.0 ✔
babel-plugin-debug-macros@0.3.4 ✔
content-tag@1.1.2 ✔
ember-source@3.28.12 ✔
ember-this-fallback@0.4.0 (1 deprecation-name) ✔
ember-this-fallback@0.4.0 (2 themes) ✔
virtual-dom@2.1.1 ✔
WARNING: Ember CLI v5.0.0 is not tested against Node v21.0.0. See "https://github.com/ember-cli/ember-cli/blob/master/docs/node-support.md" to find out which version of Node is best to use.
(node:22167) [DEP0040] DeprecationWarning: The `punycode` module is deprecated. Please use a userland alternative instead.
(Use `node --trace-deprecation ...` to show where the warning was created)
Could not `import('file:///Users/myuser/discourse/app/assets/javascripts/discourse/ember-cli-build.js')`: Cannot read properties of undefined (reading 'indexOf')

スタックトレースとエラーレポート: /var/folders/4l/ksznzcp17sg1wjyq7mmfzfkc0000gn/T/error.dump.b499a1d1d9b275ada33629ea1a84760d.log

何か見落としていることはありますか?

bin/ember-cli をアンインストールして brew を介して node@20 をインストールした後、実行できるようになりました。

「いいね!」 1

このステップでこのエラーが発生しています。

Error: Could not symlink bin/c_rehash
Target /opt/homebrew/bin/c_rehash
is a symlink belonging to openssl@3. You can unlink it:
  brew unlink openssl@3

To force the link and overwrite all conflicting files:
  brew link --overwrite openssl@1.1

To list all files that would be deleted:
  brew link --overwrite --dry-run openssl@1.1
failed

そして、そのステップでこのエラーが発生します。

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Could not find 'bundler' (2.4.13) required by your /Users/Desktop/discourse/Gemfile.lock. (Gem::GemNotFoundException)
To update to the latest version installed on your system, run `bundle update --bundler`.
To install the missing version, run `gem install bundler:2.4.13`

	from /System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:302:in `activate_bin_path'
	from /usr/bin/bundle:23:in `<main>'

どう進めればよいか、どなたか教えていただけますか?初めてです。@Arkshine

残念ながら、macOSコンピューターを所有していません。スクリプトはWindows/Linuxでは正常に動作することを知っていますが、macOSではテストできません。

brew link --overwrite openssl@1.1 を実行してから、スクリプトを再度実行してみましたか?ただし、こので再び停止する可能性が高いです。

この開発環境で環境変数を設定する方法を知っている人はいますか? SSOを機能させようとしていますが、CORSを有効にする必要があるようです。app.ymlでそれを行う必要があると読みましたが、このセットアップにはそれがないようです。site_settings DBテーブルに配置できますか?すみません、Discourseの開発は初めてです。

こんにちは、@Plabforumさん

あなたと同じ2つのエラーに遭遇しています。解決できましたか?

何かアドバイスがあれば、どんなことでもありがたいです。

申し訳ありませんが、良いニュースはありません。実際、その後諦めました。

お気の毒に。私は実際、次のように openssl@3 のリンクを解除することでこれを乗り越えることができました。

brew unlink openssl@3

そして openssl@1.1 をリンクしました。

brew link --overwrite openssl@1.1

スクリプトを再度実行したところ、エラーは発生しませんでした(最初の実行でインストールされたものに関する警告がいくつかありましたが)。

「いいね!」 2

開発のためにMacbookにDiscourseをインストールできたようです。このトピックの指示に従いました。さらに2つの質問があります。

  1. bundle exec rake autospecを実行中に警告と失敗を受け取りましたが、これは懸念すべき理由ですか?私のインストールは期待どおりに機能しており、管理セクションにエラーが表示されていません。

  2. この種のソリューション/サーバーはまったく初めてなので、愚かな質問をしたら申し訳ありません。サーバーを使用したいときはいつでも bundle exec rails serverbin/ember-cli、および mailhog を実行する必要がありますか?また、サーバーをシャットダウンしたい場合はどうすればよいですか?

サポートありがとうございます!