Usar o Software Updater é a mesma coisa que executar o apt-get update e o apt-get upgrade?

Respostas:

21

Resposta curta

Não, eles não são os mesmos. apt-get upgradenã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.


Long asnwer

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.

Exemplo

Um bom exemplo da diferença entre os dois é quando um novo kernel Linux é lançado. Isso é empacotado no linux-image-genericpacote, que sempre depende do pacote mais recente do kernel do Linux. Como as dependências da linux-image-genericmudança com cada atualização do kernel, upgradenão a atualizam.

kiri
fonte
1
Você pode explicar por que, quando o Software Updater não exige mais a senha de root para atualizar os pacotes existentes (ou seja, quando apenas apt-get upgradeé necessário), apt-getnão pode fazer o mesmo? Parece que há algo mais diferente entre os dois.
Jonathan Y.
4

É 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.


fonte
3

Com aptas 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 aptutilitá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-getatualização de pacotes. Eles são semelhantes: o mesmo pacote (também chamado apt) fornece os dois , e tudo aptpode fazer, os apt-utilitários tradicionais também, embora em alguns casos você precise passar opções especiais de configuração. Mas aptestá mais próximo do apt-getque 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 upgradevez de sudo apt-get upgradese 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-getnão usa PhasedUpdates; portanto, às vezes, o Software Updater mostra menos atualizações que apt-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? .

# Pabouk Feb 25 '15 às 7:34

Essa pode sempre ter sido a diferença mais significativa, pois sempre se pode executar sudo apt-get dist-upgradediante upgradeda 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:

  • Assim apt-get, o aptcomando 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.
  • Mas , ao contrário apt-get , o aptdo comando upgradeacçã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.

Eliah Kagan
fonte