# Como atualizar o sistema da VPS via SSH

> No terminal da VPS, rode apt update para buscar a lista de atualizações e apt upgrade para instalar. Se a atualização trouxer um kernel novo, reinicie a VPS com reboot.

> **Atenção: segurança da sua VPS.** Os comandos no SSH mexem direto no servidor e são executados por sua conta e risco. Confira cada comando antes de rodar e, se puder, crie um snapshot da VPS antes de começar.

Para atualizar a VPS, rode `apt update` e depois `apt upgrade` no terminal. O primeiro busca a lista do que há de novo; o segundo instala. Se a atualização trouxer um kernel novo, reinicie a VPS com `reboot` para ele passar a valer.

## Antes de começar
- Acesse a VPS por SSH. Se ainda não sabe como, veja "Como acessar sua VPS por SSH pelo terminal (Linux, Windows e Mac)".
- Os comandos funcionam no Ubuntu e no Debian, os sistemas das VPS da StayCloud.
- Os exemplos supõem que você entrou como `root`. Com outro usuário, coloque `sudo` na frente de cada comando.
- Faça um snapshot da VPS pelo painel antes. Se algo der errado, você volta ao estado anterior. Veja "Como criar um snapshot da sua VPS pelo painel antes de uma mudança". O backup automático da VPS é o adicional opcional, contratado na compra; sem ele, o snapshot feito por você é o seu único ponto de volta.
- Escolha um horário de pouco movimento: alguns serviços reiniciam durante a atualização e o `reboot` deixa a VPS fora do ar por alguns minutos.

## Buscar e instalar as atualizações
1. Atualize a lista de pacotes:
   ```
   apt update
   ```
   Resultado: aparecem linhas com `Get:` e `Hit:` e, no fim, quantos pacotes podem ser atualizados, por exemplo `12 packages can be upgraded`. Se aparecer `All packages are up to date.`, não há nada para atualizar.
2. Veja o que vai ser atualizado (opcional):
   ```
   apt list --upgradable
   ```
   Resultado: aparece a lista dos pacotes com a versão nova.
3. Instale as atualizações:
   ```
   apt upgrade
   ```
   Resultado: o terminal mostra o que vai mudar e pergunta `Do you want to continue? [Y/n]`.
4. Digite `y` e aperte `Enter`.
   Resultado: os pacotes são baixados e instalados. No fim, o prompt da VPS volta.

Se, no meio da instalação, aparecer uma tela perguntando se quer manter um arquivo de configuração que você já alterou, a opção mais segura é manter a versão que está instalada (em geral, a padrão).

No Ubuntu, pode aparecer também uma tela do `needrestart` perguntando quais serviços reiniciar ou avisando que há um kernel novo. Aperte `Enter` para aceitar o que vem marcado.

## Limpar o que não é mais usado
1. Remova os pacotes que ficaram sobrando:
   ```
   apt autoremove
   ```
   Resultado: o terminal lista os pacotes antigos que não são mais necessários, como kernels velhos, e pede confirmação. Digite `y` e aperte `Enter`.

## Reiniciar, se precisar
Nem toda atualização pede reinício. Reinicie quando o kernel (o núcleo do sistema) foi atualizado.

1. No Ubuntu, veja se o sistema pede reinício:
   ```
   cat /var/run/reboot-required
   ```
   Resultado: se aparecer `*** System restart required ***`, reinicie. Se aparecer `No such file or directory`, não precisa.
2. Para conferir em qualquer um dos dois sistemas, use o `needrestart` (no Debian, instale antes com `apt install needrestart`):
   ```
   needrestart -k
   ```
   Resultado: o comando diz se o kernel em uso é o mais novo ou se há um kernel novo esperando o reinício.
3. Reinicie a VPS:
   ```
   reboot
   ```
   Resultado: a conexão SSH cai. Espere de um a dois minutos e conecte de novo.

## Como saber se deu certo
Conecte de novo na VPS e rode:

```
apt update
```

No fim, deve aparecer `All packages are up to date.`. Para conferir a versão do sistema, rode `cat /etc/os-release`.

## Se algo der errado
### "Could not get lock /var/lib/dpkg/lock-frontend"
Causa: outra instalação ou atualização está rodando, muitas vezes a atualização automática de segurança. Solução: espere alguns minutos e rode o comando de novo. Não apague o arquivo de trava.

### A VPS não voltou depois do reboot
Causa: a VPS ainda está ligando ou algo falhou na inicialização. Solução: espere mais alguns minutos e veja o status no painel. Se não voltar, entre pelo Console SSH do painel ou restaure o snapshot que você fez antes.

### "dpkg was interrupted, you must manually run 'dpkg --configure -a' to correct the problem."
Causa: uma atualização anterior foi interrompida no meio. Solução: rode `dpkg --configure -a` e, depois, `apt upgrade` de novo.

## Relacionados
- Como criar um snapshot da sua VPS pelo painel antes de uma mudança
- Como reiniciar sua VPS pelo painel
- Como acessar sua VPS pelo Console SSH do painel
- Como instalar programas na VPS via SSH
- Como restaurar um backup da sua VPS pelo painel

---
Fonte: https://help.staycloud.com/artigos/como-atualizar-o-sistema-da-vps-via-ssh
