Quando uma falha de segurança é encontrada no produto A, um novo pacote para o produto A é liberado, com uma versão superior. Isso é atualizado nas listas de pacotes, que fazem parte do repositório.
Quando você executar sudo apt update , baixará uma lista de pacotes disponíveis. Posteriormente, quando você executar sudo apt upgrade , já que o produto A está instalado, você fará o download da nova versão e a instalará.
Se você não tiver o produto A instalado, o pacote não será baixado nem instalado.
Seu sistema inteiro é pacotes. Se for encontrado um problema de segurança em um componente, por exemplo, o kernel, o pacote será atualizado para uma nova versão, mas com exatamente o mesmo nome de pacote.
Portanto, isso garante que você obtenha os patches de segurança apropriados para o software que você instalou.
Se você instalou o software por outros meios além dos repositórios do Ubuntu, você não obterá atualizações para eles através dos repositórios do Ubuntu.
Isso é um pouco diferente do modelo do Windows, no qual você obtém atualizações, e realmente não informa qual módulo ou parte do sistema operacional está atualizado, nem pode escolher o que instalar. Mas no Ubuntu (e outras distros) tudo é um pacote - e você pode escolher de um sistema muito pequeno, pesando menos de um gigabyte, sem qualquer ambiente gráfico, para um desktop completo - ou servidor.
Agora eu tenho um pacote que pode ser atualizado em uma caixa que eu tenho - firefox:
[~]$ sudo apt-get upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following packages have been kept back:
xserver-xorg-hwe-16.04
The following packages will be upgraded:
firefox
1 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Need to get 0 B/43.7 MB of archives.
After this operation, 21.5 kB of additional disk space will be used.
Do you want to continue? [Y/n] n
Abort.
vamos dar uma olhada neste pacote, usando apt-cache policy firefox :
[~]$ apt-cache policy firefox
firefox:
Installed: 57.0.1+build2-0ubuntu0.16.04.1
Candidate: 57.0.3+build1-0ubuntu0.16.04.1
Version table:
57.0.3+build1-0ubuntu0.16.04.1 500
500 http://security.ubuntu.com/ubuntu xenial-security/main amd64 Packages
*** 57.0.1+build2-0ubuntu0.16.04.1 500
500 http://no.archive.ubuntu.com/ubuntu xenial-updates/main amd64 Packages
100 /var/lib/dpkg/status
45.0.2+build1-0ubuntu1 500
500 http://no.archive.ubuntu.com/ubuntu xenial/main amd64 Packages
[~]$
Aqui mostra que eu tenho o 57.0.1 + build2-0ubuntu0.16.04.1 instalado, mas o 57.0.3 + build1-0ubuntu0.16.04.1 está disponível. Se eu optar por atualizar, irei obter a nova versão do firefox.
O xserver-xorg-hwe-16.04 é mantido no exemplo acima, porque depende de xserver-xorg-legacy-hwe-16.04 , que não está instalado. Assim, apt upgrade não irá tocá-lo, a menos que eu faça um sudo apt-get install xserver-xorg-legacy-hwe-16.04 :
[~]$ sudo apt-get install xserver-xorg-hwe-16.04
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following additional packages will be installed:
xserver-xorg-legacy-hwe-16.04
The following packages will be REMOVED:
xserver-xorg-legacy
The following NEW packages will be installed:
xserver-xorg-legacy-hwe-16.04
The following packages will be upgraded:
xserver-xorg-hwe-16.04
1 upgraded, 1 newly installed, 1 to remove and 1 not upgraded.
Need to get 41.1 kB of archives.
After this operation, 3,072 B of additional disk space will be used.
Do you want to continue? [Y/n]
Portanto, um pacote só será atualizado, desde que não liste novas dependências.