Por que a separação de atualização e atualização existe?

11

Entendo que em apt , o comando update atualiza a lista de pacotes disponíveis, mas não atualiza o software que já estava instalado a partir desses pacotes.

Eu também entendo que upgrade atualiza qualquer software que eu já instalei de um pacote que atualizei com update , conforme descrito acima.

Qual foi o motivo dos desenvolvedores Ubuntu / Debian fazerem essa divisão de update e upgrade em vez de trabalhar com um comando para executar as duas tarefas?

Esta é mais uma questão sobre a filosofia arquitetural dos desenvolvedores do Ubuntu.

    
por user9303970 13.02.2018 / 12:42

6 respostas

7

Uma atualização não é a única vez em que você pode precisar de apt-get update , e eu não quero atualizar cada vez que simplesmente quero atualizar as listas de pacotes.

Um apt-get upgrade funcionando bem pode depender de apt-get update ser executado há pouco tempo, mas isso também é verdade para apt-get remove e apt-get install ! Todos estes devem implicar em apt-get update ? Claro que não! Como uma simples questão de eficiência de recursos e limpeza do design, se uma operação é comum a várias outras operações, ela deve ser fatorada.

Por outro lado, considerando que apt-get remove e apt-get install também podem depender de apt-get update ser executada recentemente para concluir com êxito, faz sentido apt-get upgrade para cada execução de apt-get update ? Não, mais uma vez, já que o que pretendo fazer pode entrar em conflito com o que o apt-get upgrade fará.

    
por muru 13.02.2018 / 13:12
6

Sempre que você alterar as fontes de software, deverá executar o comando sudo apt update para atualizar a lista de softwares disponíveis. Então você pode procurar por pacotes disponíveis na nova fonte de software que você acabou de adicionar e / ou instalá-los.

O comando sudo apt upgrade é o equivalente no terminal da atualização da lista de pacotes instalados usando o aplicativo Software Updater. Isso é diferente do fluxo de trabalho normal de adicionar uma nova fonte de software, atualizar a lista de softwares disponíveis para incluir pacotes da nova fonte de software e instalar novos pacotes da nova fonte de software que você acabou de adicionar, portanto, é mais conveniente e menos confuso que sudo apt update e sudo apt upgrade são comandos separados.

Também é menos confuso separar sudo apt update e sudo apt upgrade , porque quando você executa sudo apt update com êxito, confirma que tem conectividade com a Internet. Se houver um problema ao executar sudo apt upgrade , o problema provavelmente será mais um problema de gerenciamento de pacotes do que um problema com a conectividade com a Internet, e os resultados de sudo apt upgrade fornecerão dicas para diagnosticar e resolver o problema.

    
por karel 13.02.2018 / 12:55
5

A história da diferença entre update e upgrade é realmente muito legal.

Há muito, muito tempo - cerca de 2000 ou mais, anos antes da existência do Ubuntu -, a largura de banda e o espaço em disco eram muito mais limitados ... embora fossem expansivos em comparação com meados dos anos 90. A banda larga estava apenas começando, e a conexão discada ainda era uma forma vital de se conectar. Grandes discos ainda eram apenas algumas centenas de MB. O Apt era brilhante e novo, radical e revolucionário, construído sobre o dpkg.

O banco de dados apt, quando você pensa sobre ele, é uma maravilha: é um banco de dados preciso ao minuto de todo software de todos repositórios conhecidos. Ele é detalhado o suficiente para o apt calcular dependências e identificar atualizações disponíveis, mas pequeno o suficiente para transmitir através dos modems dial-up da hora e para armazenar nas pequenas unidades do tempo. Atualizar seu banco de dados por telefone pode levar minutos por uma boa conexão. Embora isso seja muito tempo agora, procurar atualizações de pacote manualmente (antes do apt) poderia consumir horas .

Naquela época, as distros eram construídas de forma diferente - sem Integração Contínua, sem testes de fumaça (bem, sem muitos testes!), construir fazendas estava apenas começando. Os upgrades tiveram que ser revertidos com mais frequência do que agora. Muitos usuários escolheram não atualizar determinados pacotes por vários motivos, ou selecionar apenas algumas atualizações hoje (para testar manualmente) e outras atualizações amanhã.

Durante os próximos 15 anos ou mais, as ferramentas não mudaram muito, motivo pelo qual ainda temos ações update e upgrade separadas. O fluxo de trabalho do usuário evoluiu à medida que a confiabilidade da distribuição melhorou, e muito do gerenciamento de origem / atualização / atualização que costumava ser manual foi lentamente escondido atrás de camadas de automação ( software-updater , unattended-upgrades ) .

A modernização das ferramentas do pacote de software é uma das razões pelas quais o Snaps e o AppImage e o Flatpack apareceram recentemente, mas esse é o próximo capítulo.

    
por user535733 13.02.2018 / 14:59
2

Eles separam as coisas por vários motivos.

Um exemplo é uma pergunta que eu postei e auto-respondi: Como os PPAs podem ser removidos usando a GUI? . Nesta tela, queremos remover os PPAs sem atualizar o software:

DepoisderemoverumPPA,osoftwaredaGUIexecutaautomaticamentesudoaptupdate.SevocêremoverumPPAdalinhadecomando,precisaráexecutarsudoaptupdateapósremoverumPPAdalistadeorigens.

Semumafunçãoaptupdateseparada,nãohácomoremoverumPPA!.

Outroexemploéquevocêprecisaexecutarsudoaptupdatedalinhadecomandoparaatualizarasfontes.Entãovocêpodedescobriroquepoderiaseratualizadosematualizar,naverdade:

$aptlist--upgradableListing...Doneconky-std/xenial1.10.1-3amd64[upgradablefrom:1.9.0-4]google-chrome-stable/stable65.0.3325.181-1amd64[upgradablefrom:63.0.3239.132-1]libxnvctrl0/xenial390.48-0ubuntu0~gpu16.04.1amd64[upgradablefrom:387.22-0ubuntu0~gpu16.04.1]nvidia-settings/xenial390.48-0ubuntu0~gpu16.04.1amd64[upgradablefrom:387.22-0ubuntu0~gpu16.04.1]peek/xenial1.3.1-0~ppa23~ubuntu16.04.1amd64[upgradablefrom:1.2.1-0~ppa20~ubuntu16.04.1]

Olhandoparaasaída,vocêpodedecidirterumdeterminadopacote"fixado" ou "retido" e não atualizado na próxima vez que o 'sudo apt upgrade' for executado. Se houvesse um único processo de "atualização / atualização" você perder essa habilidade.

Sem um apt update separado, não é possível ver o que seria atualizado!

    
por WinEunuuchs2Unix 13.02.2018 / 13:37
0

Alguém poderia perguntar por que baixar o programa do repositório formal do Ubuntu com apt e depois instalá-lo? Que diferença faria se você primeiro baixasse e instalasse em vez de baixar e instalar em uma operação?

Bem, depois de ler os comentários e pensar mais sobre isso, eu entendo que isso se deve à filosofia Unix , a < href="https://en.wikipedia.org/wiki/Modular_design"> modular filosofia que basicamente diz "Cada programa faz uma coisa": Primeiro baixe, em seguida, instale --- cada ação com seu próprio dedicado programa.

    
por user9303970 13.02.2018 / 13:10
0

Em nenhuma distribuição, há uma coisa de atualização-atualização de comando, se estiver lá, nada mais é do que aliases predefinidos que presumo. Esses aliases também podem ser facilmente configurados no Ubuntu, editando o ~ / .bashrc.

A atualização é usada para ressincronizar os repositórios e corrigir quaisquer problemas. Então, quando você faz o upgrade, você realmente faz o upgrade de seus pacotes instalados. Mas quando você faz o upgrade, você faz o upgrade completo. No Arch linux, eles enfatizam a atualização completa com o Syu. Você pode fazer o mesmo no Ubuntu. Na atualização completa, você realmente resolve qualquer sistema de problema de dependência, que pode surgir na atualização parcial.

Espero que ajude. Por favor, desculpe o texto bruto como escrever no telefone.

    
por Arijit Chatterjee 03.04.2018 / 09:05