Fiquei me perguntando por que upgrade
às vezes não quer atualizar certas partes do sistema, enquanto o dist-upgrade
faz. Aqui está um exemplo após a execução apt-get upgrade
:
apt-get upgrade
:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get upgrade
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
0 upgraded, 0 newly installed, 0 to remove and 3 not upgraded.
versus apt-get dist-upgrade
:
rimmer@rimmer-Lenovo-IdeaPad-S10-2:~$ sudo apt-get dist-upgrade
Reading package lists... Done
Building dependency tree
Reading state information... Done
Calculating upgrade... Done
The following NEW packages will be installed:
linux-headers-3.0.0-13 linux-headers-3.0.0-13-generic
linux-image-3.0.0-13-generic
The following packages will be upgraded:
linux-generic linux-headers-generic linux-image-generic
3 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 48.5 MB of archives.
After this operation, 215 MB of additional disk space will be used.
Do you want to continue [Y/n]?
Em outras palavras, por que isso não pode ser realizado upgrade
?
full-upgrade
como opçãoapt-get
no 14.04.1.apt
quer, mas parece ser um comando completamente diferente e foi decorado de acordo com a página de homem que ele ligadosapt
e não deapt-get
... :-) Tenteman apt
.apt-get upgrade
é restrito ao caso em que os pacotes devem ser substituídos por versões mais recentes, mas nenhum pacote precisa ser adicionado ou removido. Uma nova versão do Firefox, por exemplo, deve ser instalada comapt-get upgrade
.No entanto,
apt-get upgrade
se recusará a trabalhar quando houver adições ou remoções exigidas pelas versões atualizadas. Por exemplo, quando você tem o kernellinux-image-3.2.0-10-generic
instalado elinux-image-3.2.0-11-generic
aparece, olinux-image-generic
pacote é atualizado para depender da versão mais recente. Para instalar o novo kernel, você precisa executarapt-get dist-upgrade
.Observe como
apt-get upgrade
alguém dirá que os pacotes do kernel foramheld back
. Essa é a dica para usarapt-get dist-upgrade
.fonte
update-manager
não usaapt-get
diretamente; em vez disso, trabalha com um back-end chamadoaptdaemon
. As habilidades padrão deupdate-manager
são uma mistura dos modosupgrade
edist-upgrade
deapt-get
: ele pode adicionar, mas não remover pacotes - ele invoca a ferramenta "Atualização parcial" quando as remoções são necessárias. Ao usar a linha de comando, useapt-get upgrade
. Se você vir que os pacotes foram "retidos", corraapt-get dist-upgrade
para pegar as atualizações restantes.Basicamente, a atualização atualizará apenas os pacotes existentes de uma versão para outra. Ele não instalará ou removerá pacotes, mesmo que isso seja necessário para atualizar outros. No caso de atualizações do kernel, atualizar o pacote linux-generic exige a instalação do novo pacote linux-3.0.0-13-generic, e como o upgrade se recusa a instalar ou remover pacotes, ele se recusa a atualizar o linux-generic.
Às vezes, várias incompatibilidades entre pacotes exigirão a remoção de alguns pacotes para atualizar outros, e isso também exigirá dist-upgrade. As atualizações do kernel sempre exigirão dist-upgrade por causa de como elas são tratadas. Em vez de ter um pacote de kernel atualizado, um pacote de kernel totalmente novo é criado a cada vez, e o metapacote do kernel é atualizado para depender do novo pacote de kernel e não do antigo. Isso foi feito para manter as versões antigas do kernel atualizadas, para que, caso haja um problema na inicialização do novo kernel, você possa escolher o antigo no menu de inicialização e se recuperar.
fonte
O
apt-get upgrade
comando normalmente instalará apenas atualizações (ou correções) nos pacotes atualmente instalados. Normalmente, uma nova versão do Mozilla Firefox , por exemplo, seria instalada com este comando.No entanto
apt-get upgrade
, geralmente não instalará novos lançamentos, onde grandes alterações (incluindo remoção de pacotes ou atualização do GRUB são necessárias). Por exemplo, quando um novo kernel Linux (linux-image-3.xx-xx-generic, etc.) estiver disponível, o pacote não será instalado.Para instalar o novo kernel, você precisará executar
apt-get dist-upgrade
. Você será notificado quando executarapt-get upgrade
, pois dirá que certos pacotes foram retidos. Essa é a sua sugestão de usar:apt-get dist-upgrade
.fonte
dist-upgrade
não atualizará para uma nova versão, a menos quesources.list
tenha sido modificado de acordo (e mesmo assim, essa não é uma maneira suportada de atualização no Ubuntu). Quando um novo kernel é instaladodist-upgrade
, essa não é uma nova versão do Ubuntu . É apenas um novo pacote. Além disso, a reivindicação "ou atualização do GRUB é necessária" é falsa.sudo apt-get upgrade
é perfeitamente capaz de atualizar pacotes em uma situação em que o GRUB deve ser atualizado, desde que nenhum pacote seja removido e novos pacotes sejam instalados.update-grub
é executado automaticamente, como sempre.apt-get upgrade
não irá remover ou adicionar pacotes. Se uma correção para um pacote exigir um novo pacote, a atualização será retida. A resposta de pablomme , que você revisou para ser menos precisa, é melhor e eu aconselho os leitores a irem a essa.apt-get upgrade
nunca instalará ou removerá nenhum pacote. As atualizações do kernel são empacotadas como novos pacotes e, como resultado,apt-get upgrade
nunca atualizarão o kernel. O fato de a atualização do kernel fazer alterações "importantes", como a configuração do GRUB, não é o motivo da diferença entreupgrade
edist-upgrade
.Sua melhor opção é:
apt full-upgrade
-que manipula automaticamente as dependências ao atualizar pacotes; enquanto que:
NÃO manipula dependências automaticamente ao atualizar pacotes.
- duBtrotterS
fonte