Discourse auf macOS für die Entwicklung installieren

Ich habe einige Probleme bei der Einrichtung von Discourse für die Entwicklung auf meinem M1 Mac.

Die Gems fast_xs und gc_tracer lassen sich mit fast ähnlichen Fehlern nicht installieren. Ich habe die Fehlermeldung von fast_xs unten eingefügt. Könnte mir jemand helfen?

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

Wie wurde das gelöst?

Wenn ich Folgendes ausführe

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

nachdem ich sowohl den Redis- als auch den Postgres-Server gestartet habe, erhalte ich die folgende Fehlermeldung.

fe_sendauth: no password supplied
Couldn't create 'discourse_development' database. Please check your configuration.
rake aborted!

Wenn ich dies tue, ohne meine Redis- und Postgres-Server zu starten, erhalte ich die folgende Fehlermeldung.

bundle exec rake db:migrate
RAILS_ENV=test bundle exec rake db:create db:migrate
Couldn't connect to Redis
rake aborted!

Kann mir jemand sagen, was ich tun soll, ich bin ratlos.

Danke

Bisher konnte ich das Problem mit den folgenden Befehlen lösen:

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

Beachten Sie, dass wir beschlossen haben, beide nicht essenziellen Gems in

und

fallen zu lassen.

3 „Gefällt mir“

Wie kann man den Server nach der Aktivierung dieser Option herunterfahren?

Das scheint (nicht mehr) zu funktionieren, ich bekomme:\n\nfatal: couldn't find remote ref master\n\nAuch die Version zum Überschreiben lokaler Änderungen (2 Posts weiter unten) funktioniert nicht.\n\nIrgendwelche Ideen, wie man eine macOS Discourse Dev Install upgraden kann?

master wurde vor einiger Zeit in main umbenannt. Versuchen Sie Folgendes:

cd ~/discourse
git pull origin main
4 „Gefällt mir“

Danke Simon, das hilft.

Ich konnte den Git-Befehl ausführen, aber irgendwo auf dem Weg habe ich meine Entwicklungsumgebung kaputt gemacht. Ich habe jetzt eine kaputte Dev-Umgebung, sie zeigt meine Discourse-Dev-Homepage an, aber nichts scheint zu funktionieren (Neues Thema dreht sich weiter).

Was ist der einfachste Weg, meine Discourse-Dev-Installation zurückzusetzen oder eine Neuinstallation durchzuführen?

Ich habe versucht, die Installationsbefehle vom Anfang dieses Themas erneut auszuführen (es bricht beim pnpm install-Befehl ab). Ich habe auch versucht, rake db:drop db:create db:migrate auszuführen, das Arpit früher in diesem Thema vorgeschlagen hat, ebenfalls ohne Erfolg.

Ich konnte meine pnpm- und Node-Installationen aktualisieren, indem ich npm install -g pnpm und brew install node ausgeführt habe, was es mir ermöglichte, die Installationsanweisungen erneut auszuführen. Ich erhalte jedoch jetzt die folgende Build-Fehlermeldung:

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'

Haben Sie pnpm install ausgeführt, nachdem Sie npm install -g pnpm ausgeführt haben?

Details zur Umstellung auf die Verwendung von pnpm für die Paketverwaltung finden Sie hier: Discourse core is switching to pnpm for JS package management.

2 „Gefällt mir“

Ja, das habe ich getan, und ich bekomme immer noch den Fehler.

Ich habe die folgenden Schritte ausgeführt:

  1. Ich habe die Pakete auf meinem Mac aktualisiert (das anfängliche Skript erneut ausgeführt)
  2. bundle install ausgeführt
  3. pnpm install ausgeführt
  4. bundle exec rake db:create bundle exec rake db:migrate RAILS_ENV=test bundle exec rake db:create db:migrate ausgeführt
  5. bundle exec rails server ausgeführt
  6. bin/ember-cli in einem separaten Terminalfenster ausgeführt

Wenn ich Schritt 6 ausführe, wird der Fehler ausgelöst.

Wenn ich mir die Details aus dem von Ihnen bereitgestellten Link ansehe, habe ich das Gefühl, dass die von Yarn verwalteten Node-Module nicht richtig in pnpm konvertiert wurden? Es wird von der manuellen Entfernung des Ordners ‘node_modules’ gesprochen. Dies sollte jedoch mit dem neuen Git-Pull erledigt sein, oder?

Bitte sehen Sie unten den Fehler aus Schritt 6.

Ich kann das erwähnte Fehlerprotokoll teilen, wenn das hilft, die Ursache zu finden.

Es ist erwähnenswert, dass ich kein macOS-System zum Testen habe. Ich habe kürzlich meine lokale Discourse-Instanz auf einem Arch Linux-System aktualisiert. Ich würde erwarten, dass die Handhabung von JavaScript-Abhängigkeiten auf beiden Systemen ähnlich ist.

Ich glaube nicht, dass das richtig ist. Das node_modules-Verzeichnis wird nicht von git verfolgt. Die Node-Module werden installiert, wenn Sie pnpm install ausführen.

Ich kann nicht garantieren, dass dies richtig ist, aber wenn ich den Fehler bekommen würde, würde ich die Abhängigkeiten entfernen und dann neu installieren mit:

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

pnpm install

Ich denke, ember-tracked-storage-polyfill befindet sich direkt in discourse/node_modules, aber es sollte sicher sein, den vollständigen Befehl auszuführen, den ich oben gepostet habe.

Sie könnten auch versuchen, pnpm install mit detaillierter Protokollierung auszuführen, wenn es Fehler zurückgibt:

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

Ich habe gerade die Abhängigkeiten entfernt und neu installiert, der angegebene Befehl funktionierte einwandfrei. Er entfernt und installiert pnpm ohne Fehler.

Wenn ich jedoch bin/ember-cli ausführe, wird immer noch derselbe Fehler angezeigt.

Gibt es eine Möglichkeit, meine Discourse-Entwicklungsinstallation vollständig zu entfernen, einen sauberen Pull von Git durchzuführen und die Installation sauber auszuführen?

Ich bin absolut damit einverstanden, die Daten aus meiner Entwicklungsumgebung zu verlieren.

Sie könnten rm -rf ~/discourse ausführen, um den Discourse-Quellcode vollständig zu entfernen. Befolgen Sie dann die Installationsanleitung ab dem Schritt „Discourse klonen“: Install Discourse on macOS for development.

2 „Gefällt mir“

Das hat funktioniert!

Danke für deine Geduld, Simon, ich weiß es zu schätzen, dass du nicht aufgegeben hast :slight_smile:

2 „Gefällt mir“

Großartig! Ich vermute, das Problem hing mit zwischengespeicherten Assets zusammen, die zuvor im Verzeichnis /discourse/tmp/cache/assets/sprockets/ kompiliert worden waren. Möglicherweise hätte das Problem durch Ausführen von Folgendem behoben werden können:

rm -rf ~/discourse/tmp/cache/

Dies ist jedoch nur eine Vermutung.

3 „Gefällt mir“

Ich habe kein Glück damit, diese Anweisungen zu befolgen. Sie stellen keine funktionierende Umgebung bereit, da ich einen 500er-Fehler erhalte, wenn ich versuche, etwas zu installieren (Plugin, Theme, Theme-Komponente). Es scheint, dass der Assistent nicht richtig funktioniert. Ich habe jetzt etwa 10 Mal installiert und die Abhängigkeiten deinstalliert und neu installiert. Wenn ich den Autospec ausführe, erhalte ich viele Fehler, aber nicht viele Informationen darüber. Jede Idee, wie ich dieses Ding funktionsfähig zum Laufen bringen kann, ist willkommen.

Danke!

Für alle, die mit der Discourse Development README begonnen und hierher gekommen sind – wenn Sie Ihre Abhängigkeiten zum ersten Mal einrichten, empfehle ich PostgreSQL 14+, auch wenn in der README PostgreSQL 13 angegeben ist.

Warum? Wenn Sie Ihre Datenbank einrichten und die Migrationen ausführen, schlägt diese fehl, wenn sie versucht, in einer der Migrationen auf die pgvector-Erweiterung zuzugreifen. Und die Installation von pgvector für PostgreSQL 13 ist etwas umständlich. Aber wenn Sie PostgreSQL 14 und dann pgvector installieren, wird alles einfach funktionieren.

Ich empfehle Homebrew für beides:

brew install postgresql@14
brew install pgvector

Außerdem! Sie erhalten beim ersten Start des Rails-Servers einen Fehler, wenn Sie ImageMagick nicht installiert haben. (Ich weiß, dass es oben in dieser Anleitung als optional aufgeführt ist)

Ich hoffe, das hilft… jemandem!

3 „Gefällt mir“

Die Produktion ist bereits 15, ich würde das oder 16 empfehlen.

2 „Gefällt mir“