È lo stesso processo per aggiornare Discourse tramite il browser, o tramite Terminale usando ./launcher rebuild app?
Se sì, ci sono vantaggi di uno rispetto all’altro, oltre alla possibilità di aggiornare i plugin individualmente?
Non sono un esperto in questo, quindi mi scuso se dico qualcosa che non ha senso.
Chiedo questo, perché è la seconda volta che provo ad aggiornare tramite il browser e si blocca. La prima volta è iniziato e si è bloccato nel mezzo del processo di aggiornamento, e poi ieri sera (2a volta) ho premuto il pulsante di aggiornamento, sono andato a letto, e stamattina non era nemmeno iniziato. Ho dovuto annullare e riavviare.
Utilizza l’interfaccia utente quando possibile per ridurre al minimo i tempi di inattività (pochi secondi)
Occasionalmente alcune forme di aggiornamento (ad esempio, aggiornamento della versione di postgres) richiedono un aggiornamento da riga di comando. Questo è necessario in quelle occasioni ma comporta tempi di inattività nell’installazione standard. Di solito circa 20 minuti. Scegli un periodo di minor traffico.
Quelle occasioni dovrebbero essere evidenti dall’interfaccia utente.
Se desideri aggiungere o rimuovere un plugin, dovrai utilizzare la ricostruzione della console.
Dato che sto aggiornando ora, ho notato che il forum funziona ancora, ma a volte è un po’ più lento. Questo è buono rispetto all’uso del Terminale, che sembra rendere il forum completamente non funzionante. Grazie per aver chiarito questo.
Anche per un non esperto come me? Voglio dire, dirà qualcosa che mi indichi che dovrei usare il Terminale invece?
Tecnicamente parlando, pensi che questo cambierà un giorno, dove potremo fare tutto dal browser? Non conosco le tecnicalità di questo processo, ecco perché lo chiedo.
Avvio di 1 worker Unicorn che erano stati arrestati inizialmente
ERR_PNPM_RECURSIVE_EXEC_FIRST_FAIL Il comando è stato terminato con SIGKILL (Terminazione forzata): ember build -prod Docker Manager: IMPOSSIBILE AGGIORNARE
Mi succederà spesso? Cosa potrebbe causarlo e come posso risolverlo?
Sospetto che rimarrà sempre così nell’installazione standard.
Puoi trovare risorse qui per configurare una “siamo offline, torna più tardi” per mitigare quei 20 minuti, ma non è l’installazione standard e ti suggerirei di mantenere le cose semplici e facilmente supportate.
Quindi dopo che si è bloccato, ho cliccato sul pulsante per riavviare l’aggiornamento e si è bloccato di nuovo su questo, che è quello che è successo ieri sera:
Ecco cosa ho notato, ma non so se sia una coincidenza: quando si blocca in quello stato in cui non succede nulla, clicco su Reset Update. Provo a riavviare, non succede nulla. Poi torno alla pagina con tutti gli aggiornamenti e clicco sul pulsante Update. Questa volta, inizia l’aggiornamento. Non sono sicuro se ci sia qualcosa di rotto nel codice che, dopo un reset, il pulsante per riavviare non faccia effettivamente nulla? Non ho idea, ma sto solo condividendo la mia esperienza.
Ora si sta aggiornando di nuovo, dopo che ho fatto quello che ho appena descritto.
Sono confuso ora… è crashato di nuovo, ma quando ho aggiornato il browser diceva che Discourse era alla versione più recente…
Quando sono andato alla pagina principale degli aggiornamenti dove ci sono i plugin, mostrava effettivamente Discourse come aggiornato
Sembra che questo messaggio di errore sia stato molto comune ultimamente, ed è sempre stato risolto creando lo swap. Non so perché i requisiti ufficiali di Discourse non siano cambiati.
Allora ./discourse-setup avrebbe dovuto creare uno swap automaticamente. Non sono molto esperto nelle arcane dell’amministrazione di sistema, quindi lascerò altri a parlarne di più.
Detto questo, anche con più dei requisiti, gli utenti hanno riscontrato questo problema, quindi c’è qualcosa di strano.
Per quanto riguarda l’aggiornamento dall’interfaccia, l’ho trovato un po’ inaffidabile nel corso degli anni. Non sono sicuro del motivo, sembra che a volte fallisca senza motivo apparente mentre una ricostruzione funziona.
C’è un modo, tramite Terminal, per vedere se ce n’è già uno? (Forse questo risponde alla mia domanda? Non sono esperto negli arcani dell'amministrazione di sistema)
Ok, quindi immagino di non essere solo qui.
Sono un po’ confuso… usando il Terminale sono queste 2 cose diverse? Aggiornamento e Ricostruzione? Perché ho usato solo ./launcher rebuild app e questo ha sempre funzionato.
Ok, ora ha senso
Sì, anche questa è la mia esperienza.
Lo svantaggio è che la ricostruzione blocca completamente il forum, il che non è l’ideale, ma vabbè… dobbiamo fare quello che dobbiamo fare.
Senza avere competenze in materia, ho utilizzato Claude e ChatGPT per aiutarmi a capire le cose. Quindi, come suggerito, ho optato per la soluzione dello swapfile, ma come è stato fatto notare, forse avevo già uno swapfile in base a come avevo installato Discourse. Per esserne sicuro, ho eseguito
sudo swapon --show
nel Terminale e ho ottenuto questo:
Quindi ho guardato la colonna “USED” e ho pensato: " beh, se lo swapfile viene utilizzato per aiutare le cose a funzionare meglio quando la RAM non è sufficiente, ma dice che lo swapfile sta usando 1,9 GB su 2 GB, questo non aiuterà "
Quindi ho chiesto a ChatGPT se potevo semplicemente cancellare/svuotare lo swapfile e ho ottenuto questo comando:
sudo swapoff -a && sudo swapon -a
L’ho eseguito, ho lasciato che facesse il suo lavoro e ho eseguito di nuovo l’altro:
sudo swapon --show
Ora vedo questo:
Quindi immagino che sia bene passare attraverso questo processo di pulizia/svuotamento dello swapfile una volta ogni tanto?
La ricostruzione dalla riga di comando utilizza meno RAM.
Con un’installazione a due contenitori, puoi costruire un nuovo contenitore mentre quello vecchio continua a funzionare (se hai abbastanza RAM). Questo ti dà poca inattività.
Devi fare a volte una ricostruzione dalla riga di comando perché le librerie sottostanti devono essere aggiornate e queste non possono essere fatte dall’UX.
Puoi
cd /var/discourse
grep swap discourse-setup
per vedere i comandi che vengono eseguiti per creare lo swap. Se esegui swapoff (così il file non è più occupato) puoi poi eseguire i comandi che creano il file (fsallocate) rendendolo più grande, se desiderato, e formattandolo come swap (mkswap) e poi swapon -a per riattivarlo.
Se hai molti plugin, probabilmente ti servono in totale 5 o 6 GB.