Qual é a diferença entre apt-get upgrade e dist-upgrade?

Qual é a diferença entre apt-get upgrade e dist-upgrade?

Neste artigo, explicaremos a diferença entre `apt-get upgrade` e `dist-upgrade`. Também discutiremos como o `apt upgrade` e o `apt full-upgrade` fazem as coisas de maneira diferente.

Muitas vezes você verá duas das maneiras comuns de atualizar distribuições baseadas no Debian e no Ubuntu:

  • sudo apt-get update && sudo apt-get upgrade
  • sudo apt-get update && sudo apt-get dist-upgrade

A parte apt-get update atualiza o cache de pacotes locais e, assim, informa seu sistema sobre os pacotes que podem ser atualizados.

No entanto, muitos usuários do Linux ficam confusos entre o uso do apt-get upgrade e do apt-get dist-upgrade.

Eles são os mesmos, ou há uma diferença? Em quais casos você deve usar o apt-get upgrade e quando você deve usar o apt-get dist-upgrade?

Neste artigo, explicaremos a diferença entre apt-get upgrade e dist-upgrade. Também discutiremos como o apt upgrade e o apt full-upgrade fazem as coisas de maneira diferente.

Diferença entre apt-get upgrade vs apt-get dist-upgrade

Tanto o upgrade quanto o dist-upgrade são usados para atualizar os pacotes instalados no sistema. No entanto, o comando apt-get upgrade não pode instalar um novo pacote ou remover um pacote instalado do sistema. O dist-upgrade, por outro lado, pode instalar novos pacotes ou remover pacotes existentes, se necessário.

Isso também significa que você não pode atualizar a versão do kernel Linux com o apt-get upgrade. Por que? Seu sistema mantém pelo menos dois kernels de cada vez. Porque quando há uma nova versão do kernel está disponível, ela é instalada junto com a que já está em uso.

Como envolve a instalação de novos pacotes, o apt-get upgrade não atualiza o kernel.

apt-get upgrade não pode 'atualizar' a versão do kernel

O dist-upgrade é um superconjunto de upgrade. Além da função de atualização, ele também pode lidar de forma inteligente com alterações nas dependências do pacote. Isso inclui a remoção de pacotes de dependência que não são mais necessários ou a resolução de conflitos entre pacotes que surgiram devido a alterações nas dependências. Ele também pode instalar novos pacotes, se necessário.

Você pode ver na captura de tela que a execução do apt-get dist-upgrade não apenas atualiza os pacotes instalados, mas também instala a nova versão do kernel.

apt-get dist-upgrade pode atualizar a versão do kernel

Não se limita apenas a atualizações do kernel. Quando o sistema encontra cenários em que ele tem que instalar ou remover pacotes (dependência) para atualizar os pacotes instalados, dist-upgrade ajuda você. Se você vir uma mensagem de que pacotes foram mantidos, você pode executar o dist-upgrade ou executar apt-get install nesses pacotes explicitamente.

apt_upgrade

Além disso, se você estiver procurando atualizar a versão de distribuição, você deve usar dist-upgrade antes de iniciar a atualização de distribuição para que todas as dependências sejam tratadas corretamente. Isso NÃO significa que você execute o comando dist-upgrade e seu Ubuntu seja atualizado para 22.04 de 20.04.

Para resumir:

  • apt-get upgrade apenas atualiza pacotes existentes. Ele não instala novos pacotes ou remove pacotes existentes.
  • apt-get upgrade não atualiza a versão do kernel
  • dist-upgrade pode remover pacotes de dependência ou instalar novos (se necessário)
  • dist-upgrade também pode atualizar a versão do kernel
  • dist-upgrade não atualiza a versão de distribuição

Por que não usar dist-upgrade o tempo todo, então?

Agora, esta é a verdadeira questão. Se o dist-upgrade é o comando superior e faz tudo o que o apt-get upgrade faz, por que não usá-lo o tempo todo? Por que se preocupar em usar o apt-get upgrade?

A resposta é estabilidade e previsibilidade.

Se você é um usuário de desktop, você pode não se incomodar muito. Mas suponha que você seja um administrador de sistema gerenciando servidores de missão crítica executando vários serviços com diferentes softwares configurados. Nesse caso, você não pode deixar a máquina decidir a remoção de pacotes, não importa o quão "inteligente" seja.

Você não quer que seu sistema meticulosamente configurado se comporte de forma estranha porque algum pacote foi removido automaticamente pelo apt.

Além disso, houve um tempo em que a atualização do kernel também era um grande negócio. Cabia aos administradores de sistemas determinar se a versão do kernel instalada seria atualizada ou não. Ubuntu e outras distribuições tornaram-no ligeiramente melhor nos últimos tempos.

Então, isso significa que, como um usuário Linux de desktop, você pode abandonar o apt-get upgrade e confiar no dist-upgrade o tempo todo? Temos uma sugestão melhor aqui.

Em vez disso, use o comando apt

Não, sério. apt-get é um comando legado de baixo nível que pode fazer muitas coisas. É adequado para ser usado em scripts por outras ferramentas ou administradores de sistemas.

O comando apt é uma versão simplificada e destina-se a usuários regulares e casuais. Ele faz as coisas um pouco melhor e mais simples do que o apt-get.

Para atualizar seu sistema Ubuntu, use este comando:

Comandos para usar no terminal

sudo apt update && sudo apt upgrade

Ao contrário do apt-get upgrade, o apt upgrade pode instalar novos pacotes e, portanto, pode atualizar a versão do kernel Linux.

Há também apt full-upgrade que é equivalente a dist-upgrade.

Ficou claro?

Aqui estão alguns artigos para ajudá-lo:

Esperamos ter sido capazes de deixar as coisas claras e que você tenha uma melhor compreensão da diferença entre apt-get upgrade e dist-upgrade.

Mas se esse não for o caso e você ainda tiver algumas perguntas, por favor, nos avise na seção de comentários.

Última atualização deste artigo: 18 de march de 2023