Respostas:
Não, eles não são os mesmos. apt-get upgrade
não lida com a alteração de dependências entre as versões; portanto, se um pacote tiver alterado as dependências, ele não será atualizado (será "retido"). Veja a resposta longa para mais detalhes.
Utilizando o Software Updater e usando sudo apt-get update ; sudo apt-get dist-upgrade
(note a dist-
) seria quase equivalente, exceto que um é, obviamente, um GUI e os outros de um aplicativo de console e também algumas muito pequenas diferenças informativos.
De man apt-get
,
apt-get upgrade
:
upgrade
upgrade is used to install the newest versions of all packages
currently installed on the system from the sources enumerated in
/etc/apt/sources.list. Packages currently installed with new
versions available are retrieved and upgraded; under no
circumstances are currently installed packages removed, or packages
not already installed retrieved and installed. New versions of
currently installed packages that cannot be upgraded without
changing the install status of another package will be left at
their current version. An update must be performed first so that
apt-get knows that new versions of packages are available.
(ênfase por mim)
Isso significa que uma versão mais recente de um pacote que possui uma nova dependência não necessária na versão antiga não será atualizada com esse método (a menos que a nova dependência já esteja instalada). Estes serão mostrados como "Retidos".
apt-get dist-upgrade
:
dist-upgrade
dist-upgrade in addition to performing the function of upgrade,
also intelligently handles changing dependencies with new versions
of packages; apt-get has a "smart" conflict resolution system, and
it will attempt to upgrade the most important packages at the
expense of less important ones if necessary. The dist-upgrade
command may therefore remove some packages. The
/etc/apt/sources.list file contains a list of locations from which
to retrieve desired package files. See also apt_preferences(5) for
a mechanism for overriding the general settings for individual
packages.
(ênfase por mim)
Isso significa que, com esse comando, em vez de upgrade
, os pacotes com novas dependências (ou removidas) podem ser atualizados.
Um bom exemplo da diferença entre os dois é quando um novo kernel Linux é lançado. Isso é empacotado no linux-image-generic
pacote, que sempre depende do pacote mais recente do kernel do Linux. Como as dependências da linux-image-generic
mudança com cada atualização do kernel, upgrade
não a atualizam.
apt-get upgrade
é necessário), apt-get
não pode fazer o mesmo? Parece que há algo mais diferente entre os dois.
É quase o mesmo, mas não exatamente. Por exemplo, quando as atualizações do kernel são oferecidas, sudo apt-get update && sudo apt-get dist-upgrade
é necessário para obter essas atualizações.
sudo apt-get update && sudo apt-get upgrade
lhe dirá que alguns pacotes foram retidos.
O uso do Atualizador de Software torna tudo perfeito e você não verá nada retido.
apt
as atualizações disponíveis, em fases ( mencionadas pelo pabouk ), são a diferença mais saliente entre a atualização com o Atualizador de Software e a linha de comando.Hoje em dia, o apt
utilitário - que não existia quando esta pergunta foi publicada, mas provavelmente teria sido incluída na pergunta -, é uma alternativa cada vez mais popular à apt-get
atualização de pacotes. Eles são semelhantes: o mesmo pacote (também chamado apt
) fornece os dois , e tudo apt
pode fazer, os apt-
utilitários tradicionais também, embora em alguns casos você precise passar opções especiais de configuração. Mas apt
está mais próximo do apt-get
que o Atualizador de Software. Como o Atualizador de Software, é capaz de instalar novos pacotes quando a nova versão de um pacote existente os declara como dependências.sudo apt upgrade
Hoje em dia, os usuários preocupados com essa distinção podem simplesmente executar em sudo apt upgrade
vez de sudo apt-get upgrade
se desejam que novas dependências sejam instaladas automaticamente. Conseqüentemente, o recurso do Atualizador de software de atrasar um pouco algumas atualizações, para determinar se elas são estáveis em estado selvagem e limitar os danos caso não sejam, agora é provavelmente a principal diferença entre o uso do Atualizador de Software e a atualização na linha de comando.
Esse comportamento do Atualizador de Software é devido à política de atualizações em fases . Essa política - implementada no Atualizador de Software, mas não emapt-get
(ou apt
) - tem sido uma grande diferença entre os dois métodos desde que a política foi introduzida , e o pabouk comentou sobre isso há alguns anos :
Há outra diferença:
apt-get
não usa PhasedUpdates; portanto, às vezes, o Software Updater mostra menos atualizações queapt-get
. Consulte Por que o Atualizador de software diz que não há atualizações disponíveis, mas o apt-get upgrade Mostra as atualizações disponíveis? .
Essa pode sempre ter sido a diferença mais significativa, pois sempre se pode executar sudo apt-get dist-upgrade
diante upgrade
da relutância da ação em instalar novos pacotes ou desinstalar os existentes. No entanto, ao atualizar a partir da linha de comando, a importância relativa das atualizações em fases aumenta com apt
:
apt-get
, o apt
comando fará o download e instalará as atualizações, mesmo que elas sejam atrasadas devido à política de atualizações em fases, se o Atualizador de Software tiver sido usado.apt-get
, o apt
do comando upgrade
acção irá instalar novos pacotes que não foram instalados anteriormente, mas são necessários como dependências para novas versões de pacotes.Além de (a) preferir uma interface gráfica e (b) sua integração com a área de trabalho, fornecendo notificações quando houver atualizações disponíveis, o principal motivo atual para se usar o Atualizador de Software é a maneira mais fácil de participar de atualizações em fases.
apt-get
não usa PhasedUpdates; portanto, às vezes, o Software Updater mostra menos atualizações queapt-get
. Consulte Por que o Atualizador de software diz que não há atualizações disponíveis, mas o apt-get upgrade Mostra as atualizações disponíveis? .