J’ai quelques problèmes pour configurer discourse pour le développement sur mon Mac M1.
Les gems fast_xs et gc_tracer échouent à l’installation avec des erreurs presque similaires. J’ai collé ci-dessous le message d’erreur de fast_xs. Quelqu’un pourrait-il m’aider ?
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```
J’ai pu exécuter la commande git mais quelque part en cours de route, j’ai cassé mon environnement de développement. Je me retrouve maintenant avec un environnement de développement cassé, il affiche ma page d’accueil de développement Discourse mais rien ne semble fonctionner (Nouveau sujet tourne en continu).
Quelle est la manière la plus simple de réinitialiser ou d’effectuer une nouvelle installation de mon installation de développement Discourse ?
J’ai essayé de relancer les commandes d’installation au début de ce sujet (cela échoue sur la commande pnpm install). J’ai également essayé d’exécuter rake db:drop db:create db:migrate proposé par Arpit plus tôt dans ce sujet, sans succès non plus.
J’ai pu mettre à jour mes installations pnpm et node en exécutant npm install -g pnpm et brew install node, ce qui m’a permis de relancer à nouveau les instructions d’installation. Cependant, je rencontre maintenant l’erreur de compilation suivante :
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'
J’ai exécuté bin/ember-cli dans une fenêtre de terminal séparée
L’exécution de l’étape 6 déclenche l’erreur.
En regardant les détails du lien que vous avez fourni, j’ai l’impression que les modules Node gérés par Yarn ne sont pas correctement convertis en pnpm ? Il est question de supprimer manuellement le dossier ‘node_modules’. Cependant, cela devrait être pris en charge avec le nouveau git pull, n’est-ce pas ?
Veuillez trouver ci-dessous l’erreur de l’étape 6.
Il convient de noter que je ne dispose pas d’un système macOS pour tester cela. J’ai récemment mis à jour mon instance locale de Discourse sur un système Arch Linux. Je m’attendrais à ce que la manière dont les dépendances javascript sont gérées soit similaire sur les deux systèmes.
Je ne pense pas que ce soit correct. Le répertoire node_modules n’est pas suivi par git. Les modules node sont installés lorsque vous exécutez pnpm install.
Je ne peux pas garantir que ce soit correct, mais si je recevais l’erreur, je supprimerais puis réinstallerais les dépendances avec :
Je pense que ember-tracked-storage-polyfill se trouve directement dans discourse/node_modules, mais il devrait être sûr d’exécuter la commande complète que j’ai postée ci-dessus.
Vous pourriez également essayer d’exécuter pnpm install avec une journalisation détaillée s’il renvoie des erreurs :
J’ai juste supprimé et réinstallé les dépendances, la commande fournie a bien fonctionné. Elle supprime et installe pnpm sans erreur.
Cependant, lorsque j’exécute bin/ember-cli, la même erreur persiste.
Existe-t-il un moyen de supprimer complètement mon installation de développement de Discourse et de faire un pull propre depuis Git et d’exécuter une installation propre ?
Je suis tout à fait d’accord pour perdre les données de mon environnement de développement.
Vous pourriez exécuter rm -rf ~/discourse pour supprimer complètement le code source de Discourse. Ensuite, suivez le guide d’installation à partir de son étape « Cloner Discourse » : Install Discourse on macOS for development.
Génial ! Je suppose que le problème était lié aux ressources mises en cache qui avaient précédemment été compilées dans le répertoire /discourse/tmp/cache/assets/sprockets/. Il est possible que le problème ait pu être résolu en exécutant :
Je n’ai pas beaucoup de succès en suivant ces instructions. Elles ne fournissent pas un environnement fonctionnel car j’obtiens une erreur 500 lorsque j’essaie d’installer quoi que ce soit (plugin, thème, composant de thème). Il semble que l’assistant ne fonctionne pas correctement. Je l’ai installé environ 10 fois maintenant et j’ai désinstallé et réinstallé les dépendances. Lorsque j’exécute l’autospec, j’obtiens de nombreux échecs mais pas beaucoup d’informations à leur sujet. Toutes les idées sont les bienvenues pour que je puisse faire fonctionner cette chose de manière fonctionnelle.
Pour ceux qui ont commencé par le README de développement de Discourse et sont arrivés ici – si vous configurez vos dépendances pour la première fois, je recommanderais PostgreSQL 14+, même si le README indique PostgreSQL 13.
Pourquoi ? Lorsque vous configurerez votre base de données et exécuterez les migrations, elles échoueront lorsqu’elles tenteront d’accéder à l’extension pgvector dans l’une des migrations. Et l’installation de pgvector pour PostgreSQL 13 est un peu compliquée. Mais si vous installez PostgreSQL 14 puis pgvector, tout fonctionnera.
Je recommanderais Homebrew pour les deux :
brew install postgresql@14
brew install pgvector
Aussi ! Vous obtiendrez une erreur la première fois que vous exécuterez le serveur Rails si vous n’avez pas ImageMagick installé. (Je sais qu’il est indiqué qu’il est facultatif en haut de ce guide)