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```
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?
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'
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?
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:
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:
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.
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:
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.
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)