Atualizador de software vs apt-get update


11

Eu sempre assumi que executar apt-get updateseguido por apt-get upgradeera apenas a versão da linha de comando para executar o atualizador de software; no entanto, a execução do atualizador de software resulta na necessidade de atualização dos seguintes pacotes:

Complete Generic Linux kernel  
Header files relates to Linux kernel version 3.2.0  
Linux kernel headers for version 3.2.0 on 64 bit x86 SMP  
Generic Linux kernel headers  
Linux kernel image for version 3.2.0 on 64 bit x86 SMP  
General Linux kernel image  
Linux Kernel Headers for development

ISC DHCP client  
common file used by all the isc-dhcp* packages  
LightDM GObject client library  
graphical boot animation and logger-shared libraries  
DisplayManager  
graphical  boot animation and logger-main package  
graphical boot animation and logger-label control  
graphical boot animation and logger-ubuntu-logo theme (-logo)  
graphical boot animation and logger-ubuntu-logo theme (-text)  
Jabber/XMPP connection manager

(53.9 MB)

considerando que a corrida apt-get updatee apt-get upgraderesulta em:

Reading package lists... Done  
Building dependency tree  
Reading state information... Done  
The following packages have been kept back:  
  linux-generic linux-headers-generic linux-image-generic  
The following packages will be upgraded:  
  isc-dhcp-client isc-dhcp-common liblightdm-gobject-1-0 libplymouth2 lightdm  
  linux-libc-dev plymouth plymouth-label plymouth-theme-ubuntu-logo  
  plymouth-theme-ubuntu-text telepathy-gabble  
11 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.  
Need to get 2,594 kB of archives.  
After this operation, 2,048 B of additional disk space will be used.  

Alguém pode explicar o que está acontecendo?


Em algum momento eles mudaram o comportamento de upgrade, agora você está procurando dist-upgradese também deseja atualizar o kernel.
Bobby

Respostas:


9

Parece haver alguma confusão aqui.

  • apt-get update : Isso apenas atualiza a lista de pacotes disponíveis.

  • apt-get upgrade: Isso atualizará todos os pacotes instalados para a versão mais recente.

  • apt-get dist-upgrade : Igual à atualização, mas usa um sistema de resolução de conflitos "inteligente", ele tentará atualizar os pacotes mais importantes às custas dos menos importantes, se necessário.

Portanto, se o que você deseja é garantir que os pacotes atualmente instalados sejam a versão mais recente disponível, execute

apt-get update && apt-get upgrade

Se isso resultar em problemas, convém tentar:

apt-get update && apt-get dist-upgrade

Agora, as mensagens que você postou não têm nada a ver com dist-upgradeelas, são simples atualizações. Também não há absolutamente nenhuma diferença entre eles, é simplesmente que o atualizador de software fornece as descrições dos pacotes enquanto apt-getlista os nomes dos pacotes. Por exemplo

Complete Generic Linux kernel  == linux-generic
ISC DHCP client                == isc-dhcp-client
Jabber/XMPP connection manager == telepathy-gabble  

Se você ler atentamente as duas listas, verá que são exatamente os mesmos pacotes.

Dito isto, as mensagens que você postou dizem exatamente a mesma coisa.


11
Eu pensei que eles seriam os mesmos, mas o tamanho dos downloads é massivamente diferente, a menos que esses números não sejam comparáveis ​​?!
ChrisW

1

depois, você perde uma terceira peça:

apt-get dist-upgrade

Na verdade, o apt-get upgrade não atualiza pacotes em alguns casos, por exemplo, quando eles mudam de dependência ou exigem a remoção de outros pacotes. Bu apt-get dist-upgrade será. Portanto, para obter um comportamento semelhante ao atualizador de software, você precisa:

apt-get update && apt-get dist-upgrade

Ou, se você quiser jogar um pouco mais com segurança:

apt-get update && apt-get upgrade && apt-get dist-upgrade

Veja: http://www.ghacks.net/2010/03/11/what-is-it-with-the-dist-upgrade-option-of-apt-get/
E também: https://askubuntu.com / q / 194651/125726


2
"apt-get update && apt-get upgrade && apt-get dist-upgrade" Exceto que dist-upgradeexecuta todas as operações pelas quais também seriam executadas upgrade.
Bobby

Certo. O ponto é fazer atualizações "mais seguras" antes, e depois que elas foram bem, faça dist-upgradeatualizações.
gerlos

Não consigo ver o que você ganha com isso ... exceto um número de pacote menor na segunda execução.
Bobby

Há algum tempo, tive alguns problemas com pacotes de ppa de terceiros cujas dependências foram quebradas. Usando a atualização "normal", eu poderia atualizar tudo, menos os pacotes quebrados, e como eles estavam "isolados" dos outros, eu poderia isolá-los dos outros e resolver meus problemas. Não é algo que acontece com frequência, mas uma boa abordagem para detectar problemas antes que eles atinjam você, imho.
gerlos

Eu quis dizer que não vejo a diferença que faz se você corre upgradeou dist-upgradeestá com problemas. A principal diferença é que o último também tentará atualizar o kernel, mas sem tocar nos existentes, para que o sistema nunca esteja em perigo, tanto quanto eu possa ver.
Bobby
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.