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

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

Entendo que no aptcomando updateatualiza a lista de pacotes disponíveis, mas não atualiza o software que já foi instalado a partir desses pacotes.

Também entendo que isso upgradeatualiza qualquer software que já instalei de um pacote com o qual atualizei updateconforme descrito acima.

Qual foi o motivo dos desenvolvedores do Ubuntu/Debian fazerem essa divisão updatee, upgradeem vez disso, trabalharem com um comando para executar as duas tarefas?

Esta é mais uma questão sobre a filosofia arquitetônica dos desenvolvedores do Ubuntu.

Responder1

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

Há muito, muito tempo atrás - digamos por volta de 2000, anos antes da existência do Ubuntu -, a largura de banda e o espaço em disco eram muito mais limitados... embora expansivos em comparação com meados da década de 1990. A banda larga estava apenas começando e a conexão discada ainda era uma forma vital de ficar online. Os discos grandes ainda tinham apenas algumas centenas de MB. O Apt era brilhante e novo, radical e revolucionário, construído em cima do dpkg.

O banco de dados apt, quando você pensa sobre isso, é uma maravilha: é um banco de dados preciso ao minuto detodossoftware detodosrepositórios conhecidos. É detalhado o suficiente para calcular dependências e identificar atualizações disponíveis, mas pequeno o suficiente para transmitir pelos modems dial-up da época e armazenar nas pequenas unidades da época. Atualizar seu banco de dados por telefone pode levarminutosatravés de uma boa conexão. Embora já faça muito tempo, procurar atualizações de pacotes manualmente (antes do apt) pode consumirhoras.

Naquela época, as distros eram construídas de maneira diferente - sem integração contínua, sem testes de fumaça (bem, sem muitos testes!), os build farms estavam apenas começando. As atualizações tiveram que ser revertidas com mais frequência do que agora. Muitos usuários optaram pornãoatualizar determinados pacotes por vários motivos ou selecionar apenas algumas atualizações hoje (para testar manualmente) e outras atualizações amanhã.

Nos cerca de 15 anos subsequentes, oferramentasnão mudaram muito, e é por isso que ainda temos ações updatee upgradeações separadas. Ofluxo de trabalho do usuárioevoluiu à 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 de pacotes de software é uma das razões pelas quais Snaps, AppImage e Flatpak apareceram recentemente, mas esse é o próximo capítulo.

Responder2

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

Um apt-get upgradebom funcionamento pode depender de apt-get updateter sido executado há pouco tempo, mas isso também é apt-get removeverdade apt-get install! Tudo isso deveria implicar apt-get update? Claro que não! Por uma simples questão de eficiência de recursos e limpeza de design, se uma operação for comum a várias outras operações, ela deverá ser fatorada.

Por outro lado, dado que apt-get removee apt-get installtambém pode depender de apt-get updateter sido executado recentemente para ser concluído com êxito, faz sentido apt-get upgradepara cada execução de apt-get update? Não, novamente, já que o que pretendo fazer pode muito bem entrar em conflito com o que apt-get upgradefarei.

Responder3

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

O comando sudo apt upgradeé o terminal equivalente a atualizar a 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 software disponível para incluir pacotes da nova fonte de software e instalar novos pacotes da nova fonte de software que você acabou de adicionar, por isso é mais conveniente e menos confuso sudo apt updatee sudo apt upgradesão comandos separados.

Também é menos confuso separar sudo apt updateporque sudo apt upgradequando você executa sudo apt updatecom sucesso você confirma que tem conectividade com a Internet. Se houver um problema durante a execução sudo apt upgradeposterior, é mais provável que o problema seja um problema de gerenciamento de pacotes do que um problema de conectividade com a Internet, e os resultados sudo apt upgradefornecerão pistas para diagnosticar e resolver o problema.

Responder4

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

Bem, depois de ler os comentários e pensar mais sobre isso, entendo que isso se deve aoFilosofia Unix, amodularfilosofia que basicamente diz "Cada programa faz uma coisa": primeiro baixe e depois instale --- cada ação com seu próprio programa dedicado.

informação relacionada