É o mesmo processo para atualizar o Discourse pelo navegador ou pelo Terminal usando o ./launcher rebuild app?
Se sim, há alguma vantagem de um sobre o outro, além de poder atualizar plugins individualmente?
Não sou um especialista nisso, então me desculpe se eu estiver dizendo algo que não faz sentido.
Estou perguntando isso porque é a segunda vez que tento atualizar pelo navegador e ele fica travado. Na primeira vez, ele começou e travou no meio do processo de atualização, e então ontem à noite (2ª vez) eu cliquei no botão de atualização, fui dormir, e esta manhã ele nem sequer havia começado. Tive que cancelar e reiniciar.
Use a interface gráfica sempre que possível para minimizar o tempo de inatividade (poucos segundos)
Ocasionalmente, algumas formas de atualização (por exemplo, atualização da versão do postgres) exigem uma atualização pela linha de comando. Isso é necessário nessas ocasiões, mas leva a um tempo de inatividade na instalação padrão. Geralmente cerca de 20 minutos. Escolha um período de menor movimento.
Essas ocasiões devem ser óbvias na interface gráfica.
Se você quiser adicionar ou remover um plugin, precisará usar a reconstrução do console.
Como estou atualizando agora, notei que o fórum ainda está funcionando, mas às vezes um pouco mais lento. Isso é bom em comparação com o uso do Terminal, que parece fazer o fórum não funcionar completamente. Obrigado por esclarecer isso.
Mesmo para um não especialista como eu? Quero dizer, dirá algo que me mostre que devo usar o Terminal em vez disso?
Tecnicamente falando, você acha que isso mudará um dia, onde poderemos fazer tudo no navegador? Não sei as tecnicalidades desse processo, é por isso que estou perguntando.
Suspeito que sempre será assim na instalação padrão.
Você pode encontrar recursos aqui para configurar uma “estamos offline, volte mais tarde” para mitigar esses 20 minutos, mas não é a instalação padrão e eu sugiro que você mantenha as coisas simples e fáceis de dar suporte.
Aqui está o que notei, mas não sei se é coincidência: quando ele trava naquele estado em que nada acontece, eu clico em “Reset Update”. Tente reiniciar, nada acontece. Então volto para a página com todas as atualizações e clico no botão “Update”. Desta vez, ele inicia a atualização. Não tenho certeza se há algo quebrado no código que, após um reset, o botão para reiniciar não faz nada? Não tenho ideia, mas estou apenas compartilhando minha experiência.
Agora está atualizando novamente, depois que fiz o que acabei de descrever.
Estou confuso agora… travou novamente, mas quando atualizei o navegador, ele disse que o Discourse estava na versão mais recente…
Quando fui para a página principal de atualizações onde estão os plugins, ela de fato mostrou o Discourse como atualizado
Parece que esta mensagem de erro tem sido muito comum ultimamente, e sempre foi corrigida pela criação de swap. Não sei porquê, já que os requisitos oficiais do Discourse não mudaram.
Então ./discourse-setup deveria ter criado uma troca automaticamente. Eu não sou muito familiarizado com os arcana da administração de sistemas, então deixarei que outros expliquem mais sobre isso.
Dito isso, mesmo com mais do que os requisitos, os usuários enfrentaram esse problema, então há algo estranho.
Quanto à atualização pela interface, achei ela um pouco pouco confiável ao longo dos anos. Não tenho certeza do porquê, parece que ela às vezes falha sem motivo aparente quando uma reconstrução funciona.
Existe uma maneira, via Terminal, de ver se já existe um? (Talvez isso responda à minha pergunta? Eu não sou bom nos arcanos da administração de sistemas)
Ok, então acho que não estou sozinho aqui.
Estou um pouco confuso… usando o Terminal, essas são 2 coisas diferentes? Atualizar e Reconstruir? Porque eu tenho usado apenas ./launcher rebuild app e isso sempre funciona.
Ok, agora faz sentido
Sim, essa é a minha experiência também.
A desvantagem é que a reconstrução fecha completamente o fórum, o que não é ideal, mas fazer o quê… temos que fazer o que temos que fazer.
Sem experiência no assunto, usei o Claude e o ChatGPT para me ajudar a entender as coisas. Então, como sugerido, optei pela rota do swapfile, mas como foi apontado, talvez eu já tivesse um swapfile baseado em como instalei o Discourse. Para ter certeza, executei
sudo swapon --show
no Terminal e obtive isto:
Então olhei para a coluna “USED” e pensei: “bem, se o swapfile é usado para ajudar as coisas a rodarem mais suavemente quando a RAM não é suficiente, mas diz que o swapfile está usando 1,9 GB de 2 GB, isso não vai ajudar”
Então perguntei ao ChatGPT se eu poderia simplesmente limpar/esvaziar o swapfile e obtive este comando:
sudo swapoff -a && sudo swapon -a
Executei, deixei fazer o que tinha que fazer e executei o outro novamente:
sudo swapon --show
Agora vejo isto:
Então, acho que é bom passar por esse processo de limpar/esvaziar o swapfile de vez em quando?
Reconstruir a partir da linha de comando consome menos RAM.
Com uma instalação de dois contêineres, você pode construir um novo contêiner enquanto o antigo continua funcionando (se você tiver RAM suficiente). Isso proporciona um tempo de inatividade mínimo.
Às vezes, é necessário fazer uma reconstrução por linha de comando porque as bibliotecas subjacentes precisam ser atualizadas e essas atualizações não podem ser feitas a partir da interface de usuário.
Você pode
cd /var/discourse
grep swap discourse-setup
para ver os comandos que ele executa para criar a troca. Se você executar swapoff (para que o arquivo não esteja mais ocupado), poderá então executar os comandos que criam o arquivo (fsallocate) para torná-lo maior, se desejar, formatá-lo como swap (mkswap) e depois usar swapon -a para ativá-lo novamente.
Se você tiver muitos plugins, provavelmente precisará de um total de 5 ou 6 GB.