Ist der Prozess zum Aktualisieren von Discourse über den Browser derselbe wie über das Terminal mit ./launcher rebuild app?
Wenn ja, gibt es Vorteile der einen Methode gegenüber der anderen, abgesehen davon, dass Plugins einzeln aktualisiert werden können?
Ich bin kein Experte auf diesem Gebiet, daher entschuldige ich mich, wenn ich etwas sage, das keinen Sinn ergibt.
Ich frage das, weil ich zum zweiten Mal versuche, über den Browser zu aktualisieren, und es hängt. Das erste Mal startete es und blieb mitten im Aktualisierungsprozess stecken, und dann letzte Nacht (2. Mal) drückte ich auf den Update-Button, ging ins Bett, und heute Morgen hatte es noch nicht einmal begonnen. Ich musste abbrechen und neu starten.
Nutzen Sie die Benutzeroberfläche, wann immer möglich, um Ausfallzeiten zu minimieren (wenige Sekunden).
Gelegentlich erfordern einige Update-Formen (z. B. Aktualisierung der PostgreSQL-Version) ein Befehlszeilenupdate. Dies ist in diesen Fällen notwendig, führt aber bei einer Standardinstallation zu Ausfallzeiten. Normalerweise etwa 20 Minuten. Wählen Sie eine Zeit außerhalb der Spitzenzeiten.
Diese Anlässe sollten in der Benutzeroberfläche ersichtlich sein.
Wenn Sie ein Plugin hinzufügen oder entfernen möchten, müssen Sie den Konsolen-Rebuild verwenden.
Da ich jetzt ein Update durchführe, habe ich festgestellt, dass das Forum immer noch funktioniert, aber manchmal etwas langsamer ist. Das ist gut im Vergleich zur Verwendung des Terminals, das das Forum anscheinend komplett lahmlegt. Danke für die Klarstellung.
Auch für einen Laien wie mich? Ich meine, wird dort etwas angezeigt, das mir sagt, dass ich stattdessen das Terminal benutzen sollte?
Technisch gesehen, glauben Sie, dass sich das eines Tages ändern wird, sodass wir alles im Browser erledigen können? Ich kenne die technischen Details dieses Prozesses nicht, deshalb frage ich.
Ich vermute, dass es bei der Standardinstallation immer so bleiben wird.
Sie finden hier Ressourcen, um einen “Wir sind offline, kommen Sie später wieder”-Bildschirm zu konfigurieren, um diese 20 Minuten zu mildern, aber es ist keine Standardinstallation und ich würde vorschlagen, die Dinge einfach und gut unterstützbar zu halten.
Nachdem es abgestürzt ist, habe ich auf die Schaltfläche geklickt, um das Update neu zu starten, und es hängt wieder hier, was letzte Nacht passiert ist:
Hier ist, was mir aufgefallen ist, aber ich weiß nicht, ob es Zufall ist: Wenn es in diesem Zustand hängen bleibt, in dem nichts passiert, klicke ich auf „Update zurücksetzen“. Versuche neu zu starten, nichts passiert. Dann gehe ich zurück zur Seite mit allen Updates und klicke auf die Schaltfläche „Update“. Dieses Mal beginnt das Update. Ich bin mir nicht sicher, ob etwas im Code kaputt ist, dass nach einem Zurücksetzen die Schaltfläche zum Neustart nichts bewirkt? Ich habe keine Ahnung, aber ich teile nur meine Erfahrung.
Jetzt wird es wieder aktualisiert, nachdem ich das getan habe, was ich gerade beschrieben habe.
Ich bin jetzt verwirrt … es ist wieder abgestürzt, aber als ich den Browser aktualisiert habe, stand dort, dass Discourse auf dem neuesten Stand sei …
Als ich zur Hauptseite der Updates ging, wo die Plugins sind, wurde tatsächlich angezeigt, dass Discourse aktualisiert wurde
Es scheint, dass diese Fehlermeldung in letzter Zeit sehr häufig aufgetreten ist und immer durch die Erstellung eines Swaps behoben wurde. Ich weiß nicht warum, da sich die offiziellen Anforderungen von Discourse nicht geändert haben.
Dann sollte ./discourse-setup automatisch einen Swap erstellt haben. Ich bin nicht sehr bewandert in den Feinheiten der Systemadministration, daher lasse ich andere darüber berichten.
Das gesagt, selbst mit mehr als den Anforderungen sind Benutzer auf dieses Problem gestoßen, also ist da wohl etwas merkwürdig.
Was das Update über die Schnittstelle betrifft, so habe ich festgestellt, dass es im Lauf der Jahre etwas unzuverlässig ist. Ich bin mir nicht sicher warum, es scheint manchmal ohne ersichtlichen Grund zu scheitern, wenn ein Rebuild funktioniert.
Gibt es eine Möglichkeit, über das Terminal zu sehen, ob bereits einer vorhanden ist? (Vielleicht beantwortet das meine Frage? Ich bin kein Experte für die Arkanes der Systemadministration)
Ok, ich bin also nicht allein hier.
Ich bin etwas verwirrt… Sind das über das Terminal 2 verschiedene Dinge? Update und Rebuild? Denn ich habe nur ./launcher rebuild app verwendet und das funktioniert immer.
Okay, das ergibt jetzt Sinn
Ja, das ist auch meine Erfahrung.
Der Nachteil ist, dass der Wiederaufbau das Forum komplett lahmlegt, was nicht ideal ist, aber nun ja… wir müssen tun, was wir tun müssen.
Da ich keine Expertise in diesem Bereich habe, habe ich Claude und ChatGPT um Hilfe gebeten. Wie vorgeschlagen, habe ich den Swapfile-Weg gewählt, aber wie angemerkt wurde, hatte ich vielleicht bereits eine Swapfile, je nachdem, wie ich Discourse installiert habe. Um sicherzugehen, habe ich Folgendes ausgeführt:
sudo swapon --show
im Terminal und erhielt Folgendes:
Ich habe die Spalte „USED“ betrachtet und dachte: „Nun, wenn die Swapfile dazu dient, Dinge reibungsloser laufen zu lassen, wenn der RAM nicht ausreicht, aber sie sagt, dass die Swapfile 1,9 GB von 2 GB verwendet, wird das nicht helfen“
Also fragte ich ChatGPT, ob ich die Swapfile einfach löschen/leeren könnte, und erhielt diesen Befehl:
sudo swapoff -a && sudo swapon -a
Ich habe ihn ausgeführt, ihn seine Arbeit tun lassen und den anderen erneut ausgeführt:
sudo swapon --show
Jetzt sehe ich Folgendes:
Ich schätze also, es ist gut, diesen Prozess des Reinigens/Leerens der Swapfile ab und zu durchzuführen?
Neiaufbau über die Befehlszeile benötigt weniger RAM.
Mit einer Zwei-Container-Installation kannst du einen neuen Container bauen, während der alte weiter funktioniert (wenn du genügend RAM hast). Das reduziert die Ausfallzeiten.
Du musst manchmal eine Neukonfiguration über die Befehlszeile vornehmen, weil zugrunde liegende Bibliotheken aktualisiert werden müssen und dies nicht über die Benutzeroberfläche gemacht werden kann.
Du kannst
cd /var/discourse
grep swap discourse-setup
um die Befehle zu sehen, die zum Erstellen des Swap genutzt werden. Wenn du swapoff ausführst (damit die Datei nicht mehr genutzt wird), kannst du die Befehle zum Erstellen der Datei (fsallocate) ausführen, um sie bei Bedarf zu vergrößern, sie als Swap (mkswap) formatieren und dann swapon -a wieder aktivieren.
Wenn du viele Plugins hast, benötigst du wahrscheinlich insgesamt 5 oder 6 GB.