Discourse auf Ubuntu oder Debian für die Entwicklung installieren

Ich würde Ihren Pi persönlich löschen (es sei denn, Sie haben etwas, das Sie speichern möchten) und von vorne beginnen oder einfach eine saubere, separate SD-Karte verwenden.

Es sieht so aus, als hätten Sie zwei Discourse-Installationen gehabt – daher vielleicht der zweite Redis-Prozess.

1 „Gefällt mir“

rm -rf *? Oder ist das zu destruktiv?

Es funktioniert jetzt irgendwie. Das Laden der Seite dauert sehr lange und es kommt zu Timeouts, weil es zu lange dauert.

E, [2024-11-08T14:57:11.960623 #2213] ERROR -- : worker=0 PID:2323 running too long (65s), sending USR2 to dump thread backtraces                                                                                                            
E, [2024-11-08T14:57:18.033374 #2213] ERROR -- : worker=0 PID:2323 timeout (65s > 60s), killing                                                                                                                                              
E, [2024-11-08T14:57:20.607509 #2213] ERROR -- : reaped #<Process::Status: pid 2323 SIGKILL (signal 9)> worker=0                                                                                                                             
E, [2024-11-08T14:57:20.645299 #2213] ERROR -- : worker=1 PID:2324 running too long (63s), sending USR2 to dump thread backtraces                                                                                                            
E, [2024-11-08T14:57:20.645461 #2213] ERROR -- : worker=1 PID:2324 timeout (63s > 60s), killing                                                                                                                                              
E, [2024-11-08T14:57:20.681291 #2213] ERROR -- : reaped #<Process::Status: pid 2324 SIGKILL (signal 9)> worker=1                                                                                                                             
I, [2024-11-08T14:57:23.676422 #2555]  INFO -- : worker=0 ready                                                                                                                                                                              
I, [2024-11-08T14:57:23.681733 #2556]  INFO -- : worker=1 ready 
1 „Gefällt mir“

Welches Pi-Modell verwenden Sie? Ich würde dies nicht auf weniger als einem Pi 4 versuchen.

Es wird definitiv einige Zeit dauern.

Sobald das JavaScript erstellt ist, geben Sie einen weiteren Browser-Aufruf aus. Es sollte dann funktionieren.

Es war bereits (ich glaube, es war nach dem embroider\u003ewebpack und dem discourse-plugins\u003eapply-patches (so ungefähr)). Ich bin auf einem Pi 4.

1 „Gefällt mir“

Diese Mitarbeiter sind Einhörner (Backend). Sie sehen bereit aus. Sie müssen sicherstellen, dass das Frontend ebenfalls erstellt wurde.

Und denken Sie daran, sich mit http://localhost:4200 zu verbinden.

Woran erkenne ich, wann die Erstellung abgeschlossen ist?

1 „Gefällt mir“

Sie erhalten etwas wie:\n\n```
[ember-cli] Build successful (41838ms) – Serving on http://localhost:4200/
[ember-cli]
[ember-cli] Slowest Nodes (totalTime >= 5%) | Total (avg)
[ember-cli] -±
[ember-cli] @embroider/webpack (1) | 23127ms
[ember-cli] Babel: admin (1) | 4067ms
[ember-cli] Funnel (422) | 2826ms (6 ms)


(diese Zeiten sind auf meinem Mega-PC!)

Raspberry Pi 5 (8GB):

[ember-cli] Build successful (148604ms) – Serving on http://localhost:4200/
[ember-cli]
[ember-cli] Slowest Nodes (totalTime >= 5%) | Total (avg)
[ember-cli] -±
[ember-cli] @embroider/webpack (1) | 83461ms
[ember-cli] @embroider/compat/app (1) | 13488ms
[ember-cli] Babel: discourse-plugins (25) | 9313ms (372 ms)
[ember-cli] Babel: admin (1) | 8695ms
[ember-cli] Funnel (407) | 8557ms (21 ms)


Wenn ich mir den Speicher meines Pi 5 ansehe, verbraucht er bereits 4,27 GB nur mit Discourse und einem einzigen geöffneten Chromium-Tab!

Wenn Sie also auf starken Swap-Speicher stoßen (was an sich eine schlechte Idee auf einer SD-Karte ist), wird es sehr langsam dauern, bis dieser Punkt erreicht ist. Überprüfen Sie dies mit dem Befehl `htop` in einem anderen Terminal.

Es könnte eine Herausforderung sein, dies auf einem Pi mit weniger als 8 GB auszuführen!
1 „Gefällt mir“

Ich glaube, das habe ich auch bekommen.

Ich werde das ausführen und mich bei Ihnen melden.

Als dort stand:

Der letzte aufgezeichnete Betrag war dieser:

Dann ist es eingefroren (und ist es immer noch). Wahrscheinlich wurde das Limit überschritten. Ich habe den Browser-Tab geschlossen, aber er ist immer noch eingefroren. Ich kann nicht einmal STRG+C drücken.

Ja, ich fürchte, dein kleiner Pi braucht mehr Speicher. Sobald er so voll ist, friert er ein.

Eine Möglichkeit ist, eine NVMe-Festplatte hinzuzufügen und den Swap zu erhöhen.

Du kannst dann den Swap sicher erhöhen.

Ich denke, die einzige andere Lösung ist, einen 8GB 5 für diese Aufgabe zu besorgen und deinen 4 für etwas anderes zu verwenden.

1 „Gefällt mir“

Guten Tag

Wenn ich den folgenden Befehl eingebe, passiert nichts:

bash <(wget -qO- https://raw.githubusercontent.com/discourse/install-rails/main/linux)
Das Bild zeigt ein Terminalfenster mit einem Befehl zum Ausführen eines Skripts zur Installation von Rails unter Linux. (Beschriftet von KI)

Fehlt mir etwas?

Vielleicht ist wget nicht installiert?

Überprüfen Sie dies mit

which wget

Wenn nicht, können Sie es wahrscheinlich mit

sudo apt-get install wget -y

installieren.

3 „Gefällt mir“

Übrigens, ich habe diese Woche ein NWMe-Laufwerk hinzugefügt und mein Pi 5 läuft großartig. Ich habe auch den Swap erhöht (was ein etwas anderer Prozess als bei einem normalen Linux-System ist)

Und am bemerkenswertesten war, dass dies eine vollständige Neuinstallation einer Entwicklungsinstallation von Discourse erforderte.

Ich fand, dass die Befolgung der Anweisungen in der OP alles reibungslos und ohne Probleme verlief, sodass das Skript und die Pi-Kompatibilität derzeit an einem wirklich guten Ort sind, danke für alle Beiträge!

6 „Gefällt mir“

Hallo zusammen,

ich habe Discourse erfolgreich auf meinem lokalen Ubuntu 24.04 LTS-Server für die Entwicklung eingerichtet. Die Anleitung hat funktioniert, beide abschließenden Befehle laufen ohne Fehler durch.

Aber wie kann ich darauf über das Netzwerk zugreifen? Der Ubuntu-Server hat keine grafische Benutzeroberfläche, auf der localhost:4200 funktionieren würde.
Und ServerIP:4200 zeigt an, dass es nicht erreicht werden kann.

Irgendwelche Vorschläge, wie man den Zugriff von vernetzten Geräten in meinem LAN ermöglicht?

Danke!

2 „Gefällt mir“

Wenn Sie Rails mit bin/rails -b 0.0.0.0 starten, sollte es für andere Hosts in Ihrem Netzwerk verfügbar sein. Sie müssten dann Ember separat in einem neuen Tab mit bin/ember-cli starten.

Dann sollte der Besuch von ServerIP:4200 funktionieren (sofern Sie natürlich keine Firewall-Probleme haben).

3 „Gefällt mir“

Ich habe eine Ubuntu 24-Installation auf WLS2 ausprobiert. [1]

Hier sind die Probleme, auf die ich gestoßen bin:

  • E: Unable to locate package libltdl7-dev

  • Your Ruby version is 3.2.1, but your Gemfile specified ~= 3.3
    Da die Ruby-Version kürzlich auf > 3.3 angehoben wurde, muss auch das Skript aktualisiert werden: install-rails/linux at main · discourse/install-rails · GitHub

    • Was ich getan habe:
      rbenv install 3.3.7
      rbenv global 3.3.7
      rbenv rehash
  • ERROR Unsupported engine for /home/arkshine/discourse: wanted: {"pnpm":"^9"} (current: {"node":"v18.20.6","pnpm":"10.5.2"})

    • sudo wird benötigt: sudo pnpm install [2]
  • ERROR Failed to switch pnpm to v9.15.5. Looks like pnpm CLI is missing at "~/.local/share/pnpm/.tools/pnpm/9.15.5/bin" or is incorrect

    • Beim Ausführen von pnpm install. Ich konnte es beheben mit:
      • npm install -g corepack@latest
      • corepack use pnpm@latest-9

Als Nicht-Root macht das Fehlen von sudo im Code es unmöglich, es am Ende auszuführen. Ich weiß nicht, ob es einen cleveren Weg gibt, aber ich habe ihn nicht gefunden. Ich hatte diese Probleme mit Ubuntu 22 nicht.
Als Root konnte ich es zum Laufen bringen.

Nebenbei gibt es Developing Discourse using a Dev Container als Alternative.


  1. Da die Ruby-Version jetzt v3.3+ erfordert, konnte ich meine Installation mit Ubuntu 22 nicht reparieren. ↩︎

  2. Wenn Sie als Nicht-Root installieren. ↩︎

2 „Gefällt mir“

Ich habe Ubuntu 22 wieder zum Laufen gebracht. Ich bin nur ein Idiot. :baymax_yes:

Mein ursprüngliches Problem war, dass rbenv nur die Version 3.3.0-dev enthielt.
Ich erhielt diese Art von Fehler:

(base) arkshine@HOME:~/discourse$ rake db:migrate
Sorry, you can't use byebug without Readline. To solve this, you need to
rebuild Ruby with Readline support. If using Ubuntu, try sudo apt-get     install libreadline-dev and then reinstall your Ruby.
rake aborted!
LoadError: cannot load such file -- readline (LoadError)
/home/arkshine/discourse/config/application.rb:44:in '<top (required)>'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
internal:/home/arkshine/.rbenv/versions/3.3.0-dev/lib/ruby/3.5.0+0/rubygems/core_ext/kernel_require.rb:136:in 'Kernel#require'
/home/arkshine/discourse/Rakefile:7:in '<top (required)>'
(See full trace by running task with --trace)

Die Lösung ist, rbenv zu aktualisieren:

git -C ~/.rbenv/plugins/ruby-build pull

Dann können Sie eine neuere und stabilere Version installieren:

(base) arkshine@HOME:~/discourse$ rbenv install --list
3.1.6
3.2.7
3.3.7
3.4.2
rbenv install 3.3.7
rbenv global 3.3.7
rbenv rehash

Und jetzt funktioniert es wieder! :party_popper:

2 „Gefällt mir“

Ich habe gerade versucht, Discourse auf Ubuntu 24 (ARM-Version, die in VMWare auf meinem Mac OS Macbook läuft) zu installieren. Ich bin auf mehrere Probleme gestoßen.

Änderung #1
Die Installation von ImageMagick schlägt fehl. Im Installationsskript von ImageMagick selbst gibt es eine Abhängigkeit von libltld7-dev. Diese muss stattdessen auf libltld-dev gesetzt werden.

Änderung #2
Standardmäßig wird Ruby 3.2.1 installiert. Dies funktioniert nicht mit pnmp v9.x. Ich habe dies stattdessen auf 3.3.7 gesetzt, was zu funktionieren schien.
alt:

ruby_version="3.2.1"

neu:

ruby_version="3.3.7"

Änderung #3
Die Installation von Node 18 verursachte einige Fehler. Im Installationsskript habe ich dies auf Node 20 geändert, was zu funktionieren schien.
alt:

curl -sL https://deb.nodesource.com/setup_18.x | sudo -E bash -

neu:

curl -sL https://deb.nodesource.com/setup_20.x | sudo -E bash -

Dank des Kommentars von @Arkshine weiter oben, der hilfreich war.

6 „Gefällt mir“

Mit Ihren Updates funktioniert es immer noch mit der aktuellen Version. Vielen Dank!