Installer Discourse sur macOS pour le développement

En développement, vous n’effectuez pas de mises à niveau ici.

Salut Robert, merci pour ta réponse. Est-ce que « git pull » suffit pour effectuer une mise à niveau ? (en développement)

1 « J'aime »

Oui, mais n’oubliez pas les gems et les migrations :

git pull
bundle install
rake db:migrate
2 « J'aime »

Il semble y avoir un problème avec le script, il ne parvient pas à installer brew.
(ceci est sur un tout nouveau Mac Air M2)

Tout s’est bien passé après avoir installé brew moi-même :slight_smile:

Notez que le script installe la version Ruby 3.1.3, puis bundle exec se fâche parce que vous n’utilisez pas la 3.2.1 :smiley:

[Avertissement] Discourse recommande de développer en utilisant Ruby v3.2.1 ou une version supérieure. Vous utilisez la v3.1.3.

2 « J'aime »

Ce n’est plus vrai ! :partying_face:

3 « J'aime »

Il n’arrive pas à installer Ruby pour une raison quelconque. J’obtiens ceci :

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

Quelqu’un pourrait-il m’aider avec ça ?

1 « J'aime »

J’ai le même problème sur MacOS 13.2.1.

Cette page est le seul résultat de Google lorsque l’on recherche (une partie de) ce message d’erreur, donc au cas où quelqu’un d’autre rencontrerait à nouveau cette erreur :

Je l’ai rencontrée aujourd’hui en exécutant rails s après avoir mis à jour vers la version actuelle de Ruby (3.2.1), Rails (7.0.4.3) et toutes les dépendances de Gemfile, y compris mini_racer (0.6.3).

Cela a été résolu en suivant une suggestion d’un commentaire GitHub : exécuter make dans
.../3.2.0/gems/mini_racer-0.6.3/ext/mini_racer_extension
et copier le mini_racer_extension.bundle résultant dans .../3.2.0/extensions/x86_64-darwin-22/3.2.0/mini_racer-0.6.3.

J’ai finalement réussi à passer l’erreur de compilation build error d’une manière ou d’une autre (je n’ai pas suivi ce que j’ai fait…), mais maintenant je suis bloqué sur :

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

Pendant bundle install. :thinking:

edit :
Cela a été résolu en suivant les instructions données au-dessus de l’erreur :

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"

Je ne suis pas sûr de laquelle cependant ! :sweat_smile:

1 « J'aime »

En raison de problèmes d’autorisations sur un ordinateur portable d’entreprise, je dois exécuter le script d’installation manuellement pour traiter chaque élément un par un. Lorsque j’essaie d’exécuter gem update --system, j’obtiens l’erreur suivante :

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>'

Des idées pour surmonter ce problème ?

1 « J'aime »

Avez-vous utilisé un Mac Apple M1/M2 ? Je pense qu’il faut s’assurer que Ruby 3.2.x est le système par défaut en l’installant d’abord avec brew. Ensuite, pour les puces Apple, vous pouvez faire

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

dans votre .zshrc

Parce que le Mac OS X est livré avec le Ruby système 2.x qui va perturber le script d’installation de l’environnement.

Aussi, si vous avez des problèmes pour démarrer le service, faites quelque chose comme :

  brew services restart postgresql@13
  brew services restart redis

cela fonctionne pour moi maintenant.

2 « J'aime »

Salut à tous ! J’ai suivi le post d’installation ici et la plupart des astuces partagées m’ont beaucoup aidé à surmonter certains problèmes que je rencontrais lors de mon installation sur MacOS M1.

Je suis maintenant bloqué sur la dernière partie de Bootstrap :

bundle exec rails server

La commande ci-dessus a fonctionné pour moi, j’ai pu voir quelque chose sur localhost:3000 et aussi enregistrer l’utilisateur administrateur, mais après avoir exécuté bin/ember-cli, l’exception suivante a été présentée :

$ 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')

Trace de la pile et rapport d’erreur : /var/folders/4l/ksznzcp17sg1wjyq7mmfzfkc0000gn/T/error.dump.b499a1d1d9b275ada33629ea1a84760d.log

Est-ce que j’oublie quelque chose ?

J’ai pu exécuter bin/ember-cli après avoir désinstallé le nœud actuel et installé node@20 via brew.

1 « J'aime »

Je vois cette erreur à cette étape.

Erreur : Impossible de créer un lien symbolique vers bin/c_rehash
La cible /opt/homebrew/bin/c_rehash
est un lien symbolique appartenant à openssl@3. Vous pouvez le dissocier :
  brew unlink openssl@3

Pour forcer le lien et écraser tous les fichiers conflictuels :
  brew link --overwrite openssl@1.1

Pour lister tous les fichiers qui seraient supprimés :
  brew link --overwrite --dry-run openssl@1.1
a échoué

Et cette erreur à cette étape :

/System/Library/Frameworks/Ruby.framework/Versions/2.6/usr/lib/ruby/2.6.0/rubygems.rb:283:in `find_spec_for_exe': Impossible de trouver 'bundler' (2.4.13) requis par votre /Users/Desktop/discourse/Gemfile.lock. (Gem::GemNotFoundException)
Pour mettre à jour vers la dernière version installée sur votre système, exécutez `bundle update --bundler`.
Pour installer la version manquante, exécutez `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>'

Quelqu’un peut-il me guider sur la façon de procéder ? C’est ma première fois. @Arkshine

Malheureusement, je ne possède pas d’ordinateur macOS. Je sais que le script fonctionne bien sous Windows/Linux ; mais je ne peux pas le tester sous macOS.

Avez-vous essayé d’exécuter brew link --overwrite openssl@1.1, puis de relancer le script ? Cependant, il y a de fortes chances qu’il s’arrête à nouveau sur cette ligne.

Quelqu’un sait comment définir les variables d’environnement avec cet environnement de développement ? J’essaie de faire fonctionner le SSO mais il semble que je doive activer CORS. J’ai lu que je devais le faire dans app.yml mais cette configuration n’en a pas. Est-ce que cela peut aller dans la table de base de données site_settings ? Désolé, nouveau dans le développement de discourse.

Bonjour @Plabforum,

Je rencontre exactement les mêmes 2 erreurs que vous. Avez-vous réussi à les résoudre ?

Vos conseils seraient appréciés.

Je suis désolé, je n’ai pas de bonnes nouvelles. J’ai en fait abandonné après ça.

Désolé d’apprendre cela. J’ai en fait réussi à passer outre cela en désinstallant openssl@3 via :

brew unlink openssl@3

puis en installant openssl@1.1

brew link --overwrite openssl@1.1

J’ai relancé le script à nouveau sans erreurs (j’ai eu quelques avertissements concernant les éléments qui avaient été installés lors de la première exécution).

2 « J'aime »

Il semble que j’aie réussi à installer Discourse sur mon Macbook pour le développement en suivant les instructions de ce sujet. J’ai 2 questions supplémentaires.

  1. J’ai reçu des avertissements et des échecs en exécutant bundle exec rake autospec, est-ce une raison de s’inquiéter ? Mon installation semble fonctionner comme prévu et n’affiche aucune erreur dans la section d’administration.

  2. Je m’excuse d’avance si je pose une question stupide (je suis totalement nouveau à ce type de solution/serveur). Dois-je exécuter bundle exec rails server, bin/ember-cli et mailhog chaque fois que je souhaite utiliser le serveur ? Et comment puis-je arrêter le serveur si je le souhaite ?

Merci pour votre soutien !