apt update vs. apt upgrade: Diferenças explicadas!

Quando eu era um principiante completo e precisava de instalar algo na minha máquina Ubuntu, Fui online e escrevi “Como instalar < nome do software> no Ubuntu” e isso levou-me a uma página com alguns comandos que se pareciam com isto

sudo apt updatesudo apt upgradesudo apt install <software name>

Fiquei contente por ter conseguido escrever algo no Terminal e funcionou mesmo! Não prestei muita atenção ao que escrevi realmente. Acho que para os principiantes, parece apenas um feitiço mágico para conseguir instalar algo!

Como o tempo foi passando, muitas das minhas pesquisas no Google levaram a usar padrões muito semelhantes de comandos de “apt update” e “apt upgrade” para instalar coisas.

Em inglês simples, update e upgrade têm quase os mesmos significados, pelo que pode tornar-se confuso para um principiante compreender o que estes comandos realmente fazem. Vejamos a diferença entre estes 2 comandos e o que acontece internamente uma vez executados estes comandos.

Qual é a diferença entre apt update e apt upgrade? “apt-get update” actualiza a lista de fontes de pacotes para obter a lista mais recente de pacotes disponíveis nos repositórios e “apt-get upgrade” actualiza todos os pacotes actualmente instalados no nosso sistema Linux para as suas últimas versões.

Esta é a versão curta da resposta. Deixem-me expandir o que está escrito acima com mais alguns detalhes.

Deixemos uma segunda vista de olhos às seguintes palavras

“apt update” actualiza a lista de fontes de pacotes para obter a lista mais recente de pacotes disponíveis nos repositórios

P>Primeiro, vamos tentar compreender o que é o apt e depois vamos ver o que estas listas contêm e porque precisam de ser actualizadas de tempos a tempos.

O que é o apt?

APT significa Advanced Packaging Tool que é uma ferramenta que é utilizada para gerir software no nosso sistema e apt é apenas um comando utilizado para comunicar esta ferramenta de gestão de software APT. As palavras “gerir software” referem-se simplesmente a estas 5 tarefas básicas

  • instalar software
  • remove software
  • upgrade software
  • upgrade system e
  • manter a lista de software que está instalado no nosso sistema

Se for um iniciante completo, recomendo vivamente a leitura do artigo no link abaixo antes de continuar com este.

Uma introdução para principiantes aos gestores de pacotes Linux: apt, yum, dpkg & rpm

Também vale a pena mencionar que o apt é apenas a versão melhorada do apt-get, o que essencialmente torna a experiência do utilizador um pouco melhor ao manter as coisas mais simples. A maioria das distribuições que suportam o apt também suportará o apt-get, pois a funcionalidade é quase a mesma. apt-get ainda tem algumas características que o apt não tem, o que o torna uma boa escolha para fins de scripting.

O que são pacotes num Sistema Linux?

P>Comecemos com esta questão mais básica. O SO Linux é basicamente constituído por 3 partes

  • O hardware
  • O Kernel Linux e
  • Pacotes de software que funcionam com o Kernel para nos dar um Sistema Operativo completo

Hardware, como sabemos, é CPU, HDD, SSD, RAM todos os componentes que compõem o seu sistema.

Kernel actua como interface entre software e hardware.

Os pacotes de software podem ser software de aplicação como editores de texto, processadores de texto, etc., ou podem ser os utilitários GNU como bash, cron, dd, etc., ou podem ser os drivers de dispositivos para falar com o hardware.

Próximo, vejamos brevemente o que está incluído nestes “Pacotes”

Conteúdo dos pacotes

O conteúdo dos pacotes geridos por estes gestores de pacotes envolve os seguintes 4 componentes principais

  • Binários ou os programas executáveis
  • ficheiros de metadados contendo a versão, dependências, assinaturas e outras informações relevantes
  • documentação e manuais
  • ficheiros de configuração

Estes pacotes são armazenados em locais chamados repositórios.

O que são os Repositórios?

Esta é a próxima questão que temos de abordar. Repositórios (ou repositórios, abreviadamente) são basicamente um local onde os pacotes verificados são armazenados para facilitar a sua recuperação e instalação. Podem estar online como o repositório APT ou podem estar numa pasta local ou num DVD onde se tem uma colecção especial de software que se necessita.

P>Pode ter vários repositórios a partir dos quais pode descarregar e instalar estes pacotes. Estes podem ser

  • repositórios oficiais da sua distro em particular (alguns têm suporte garantido enquanto outros não são totalmente suportados) e
  • 3º repositório de partes

O que é uma lista de fontes de pacotes?

Esta é uma lista de pacotes disponíveis para instalação numa dada distro. Esta lista é mantida pela sua máquina Linux. A informação contida nesta lista inclui normalmente a localização de vários repositórios a partir dos quais o software pode ser instalado. Estes locais estão normalmente na Internet.

Esta lista é normalmente armazenada no directório /etc/apt. Pode ver e editar esta lista da mesma forma que pode ver quaisquer outros ficheiros de texto usando um dos seus editores de texto favoritos como gedit ou nano ou vim.

Também pode ver esta lista digitando o seguinte comando no terminal Linux

cat /etc/apt/sources.list

A captura de ecrã abaixo mostra a saída do comando acima.

Como se pode ver na imagem de ecrã acima, esta lista contém basicamente alguns URLs para locais na Internet. A partir destes locais, mais informações podem ser recolhidas como

  • a última versão de cada pacote disponível no repo principal
  • a última versão de cada pacote disponível pacote no parceiro repos

P>Pode usar o seguinte comando para fazer alterações a esta lista

sudo apt edit-sources

Eu recomendo não editar a menos que tenha a certeza do que está a fazer!

Se um URL específico tiver “#” à sua frente, será ignorado como comentários. Vamos em frente e visitar um destes repositórios para ver o que realmente contém. Pode tentar ir a este link. A imagem de ecrã abaixo mostra o seu conteúdo.

Downloading and extracting the Sources.gz file gives a file named “Source” with no file extension. Pode abri-lo utilizando qualquer editor de texto e revela um ficheiro enorme, com mais de 28.000 linhas!

Downloading and extracting the Sources.gz file gives a file named “Source” with no file extension. Pode abri-lo utilizando qualquer editor de texto e revela um ficheiro enorme, com mais de 28.000 linhas!

A imagem acima mostra um dos pacotes chamado zsh (uma alternativa de bash shells), e a informação que contém. Como pode ver, contém informações como

  • a última versão do software
  • as dependências deste software em particular etc.

Então basicamente o que estamos a fazer quando introduzimos este comando “apt update” é pedir à nossa máquina Linux para ir procurar nestas listas e copiar a última versão das mesmas e colocá-las na sua máquina local!

Agora vamos ver o comando “apt upgrade”

“apt upgrade” actualiza todos os pacotes actualmente instalados no nosso sistema Linux para as suas versões mais recentes.

Então quando introduzimos o comando “apt upgrade” dizemos à nossa máquina Linux para comparar as versões de todos os pacotes actualmente instalados com os da lista que acabámos de descarregar através de “apt update” e actualizar os pacotes que estão atrasados em termos de números de versão!

Por exemplo, considere esta situação. Vamos assumir que todos os pacotes do sistema estão actualizados com os seus números de versão iguais aos apresentados na lista, excepto um, vamos chamar-lhe “Package-X”, que tem um número de versão de 2.4 enquanto a lista diz que a versão 3.0 está disponível. Neste cenário, uma vez introduzido o comando “apt upgrade”, a sua máquina só actualiza este “Package-X” para a versão 3.0. Espero que tenha percebido o ponto!

Porque é que estes 2 comandos estão separados se precisam de ser usados em conjunto o tempo todo?

A resposta é que há situações em que não precisamos de os utilizar em conjunto! Talvez seja necessário instalar um software específico recentemente lançado e deixar o resto do sistema intocado. Nesse caso, tudo o que precisa de fazer é introduzir os seguintes comandos

sudo apt updatesudo apt install <package name>

Ver como saltamos o comando de actualização!

Se precisar realmente de actualizar todos os pacotes do seu sistema numa única linha de comando, também pode introduzir algo como

sudo apt update &amp;&amp; sudo apt upgrade

Isto irá em frente e fará ambos!

Como actualizar o Kernel Linux?

O Kernel é uma parte especial do sistema operativo e bagunçá-lo pode significar bagunçar todo o sistema! Assim, temos um comando especial para o actualizar

sudo apt full-upgrade

O comando acima irá basicamente actualizar tudo no seu sistema, todos os pacotes, e o kernel para as versões mais recentes, tal como suportado pelos seus repositórios!

Fá-lo de forma inteligente para que elimine automaticamente as sobras de pacotes desnecessários para libertar o seu disco rígido como um bónus!

Como actualizar para a última versão do Ubuntu?

Por exemplo, se está actualmente a utilizar o Ubuntu 18.04 e o Ubuntu 19.04 é a última versão do Ubuntu e deseja ser actualizado para 19.04 então o comando a usar é

sudo do-release-upgrade

Isto irá transformar completamente os vossos pacotes e kernel para a última versão!

E com isso, vou concluir este artigo!

Espero que tenham gostado deste artigo e aprendido algo útil.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *