Entendo que apt
o comando update
atualiza a lista de pacotes disponíveis, mas não atualiza o software que já foi instalado a partir desses pacotes.
Também entendo que upgrade
atualize qualquer software que eu já instalei de um pacote com o qual atualizei update
conforme descrito acima.
Qual foi o motivo dos desenvolvedores do Ubuntu / Debian para fazer essa divisão update
e, em upgrade
vez disso, trabalhar com um comando para realizar as duas tarefas?
Esta é mais uma pergunta sobre a filosofia arquitetônica dos desenvolvedores do Ubuntu.
package-management
upgrade
updates
architecture
history-of-ubuntu
user9303970
fonte
fonte
alias
qualquer maneira. A maneira unix é que um comando faz apenas uma coisa, de qualquer maneira, então separar se encaixa melhor com a maneira unix se argumentos 'teológicos / filosóficos' também são coisa para você.apt dist-upgrade
clicar em "n" para cancelar, mude de idéia, economizarei largura de banda porque ela não será 'atualizada' para refazer oapt dist-upgrade
comando ... Mesmo que 'dist-upgrade' tenha feito a atualização automaticamente, não há razões para 'update' que não incluem 'install', 'upgrade' ou 'atualizar-dist', então o comando 'update' existiria qualquer forma ..apt update
deve apenas ser executado automaticamente quando necessário.Respostas:
Uma atualização não é a única vez que você pode precisar
apt-get update
, e eu não quero atualizá-la sempre que simplesmente atualizar as listas de pacotes.Um
apt-get upgrade
trabalho bem pode dependerapt-get update
sendo executado não há muito tempo, mas, em seguida, que é verdadeiro deapt-get remove
eapt-get install
bem! Tudo isso deveria implicarapt-get update
? Claro que não! Como uma questão simples de eficiência de recursos e limpeza do projeto, se uma operação é comum a várias outras operações, ela deve ser fatorada.Por outro lado, considerando que
apt-get remove
eapt-get install
também pode depender daapt-get update
execução recente para concluir com êxito, faz sentidoapt-get upgrade
para cada execuçãoapt-get update
? Não, novamente, uma vez que o que pretendo fazer pode muito bem entrar em conflito com o queapt-get upgrade
fará.fonte
Sempre que você altera as fontes de software, você deve executar o comando
sudo apt update
para atualizar a lista de softwares disponíveis. Em seguida, você pode procurar pacotes disponíveis na nova fonte de software que você acabou de adicionar e / ou instalá-los.O comando
sudo apt upgrade
é o equivalente ao terminal da atualização da lista de pacotes instalados usando o aplicativo Atualizador de Software. 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, por isso é mais conveniente e menos confusosudo apt update
esudo apt upgrade
são comandos separados.Também é menos confuso separar
sudo apt update
esudo apt upgrade
porque, quando você executa comsudo apt update
êxito, confirma que possui conectividade com a Internet. Se houver um problema ao executarsudo apt upgrade
posteriormente, é mais provável que seja um problema de gerenciamento de pacotes do que um problema de conectividade com a Internet, e os resultadossudo apt upgrade
fornecerão dicas para diagnosticar e resolver o problema.fonte
A história da diferença entre
update
eupgrade
é realmente muito legal.Há 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 expansivos em comparação com meados da década de 90. A banda larga estava apenas começando e a conexão discada ainda era uma maneira vital de ficar online. Os grandes discos ainda tinham 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 isso, é uma maravilha: é um banco de dados preciso e atualizado de todos os softwares de todos os repositórios conhecidos. Ele é detalhado o suficiente para calcular dependências e identificar atualizações disponíveis, mas pequeno o suficiente para transmitir através dos modems dial-up da época e para armazenar nas pequenas unidades da época. A atualização do banco de dados por telefone pode levar alguns minutos para uma boa conexão. Enquanto isso já faz muito tempo, procurar atualizações de pacotes manualmente (antes do apt) pode consumir horas .
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 farms de construção estavam apenas começando. As atualizações tiveram que ser revertidas com mais frequência do que agora. Muitos usuários optaram por não atualizar determinados pacotes por vários motivos, ou selecionar apenas determinadas atualizações hoje (para testar manualmente) e outras atualizações amanhã.
Nos 15 anos subsequentes, as ferramentas não mudaram muito, e é por isso que ainda temos ações
update
eupgrade
ações separadas . O fluxo de trabalho do usuário evoluiu à medida que a confiabilidade da distribuição melhorou, e grande parte do gerenciamento de origem / atualização / atualização que costumava ser manual foi oculto lentamente por trás das camadas de automação (software-updater
,unattended-upgrades
).A modernização das ferramentas de pacote de software é uma das razões pelas quais Snaps, AppImage e Flatpack apareceram recentemente, mas esse é o próximo capítulo.
fonte
Eles separam as coisas por vários motivos.
Um exemplo é uma pergunta que postei e respondi automaticamente: Como os PPAs podem ser removidos usando a GUI? . Nesta tela, queremos remover os PPAs e não atualizar o software:
Após remover um PPA, o software da GUI é executado automaticamente
sudo apt update
. Se você tiver que remover um PPA da linha de comando, precisará executarsudo apt update
após remover um PPA da lista de fontes.Sem uma
apt update
função separada , não há como remover um PPA !.Outro exemplo é que você precisa executar a
sudo apt update
partir da linha de comando para atualizar fontes. Em seguida, você pode descobrir o que poderia ser atualizado sem realmente atualizar:Observando a saída, você pode decidir ter um determinado pacote "fixado" ou "retido" e não atualizar na próxima vez que o `sudo apt upgrade" for executado.Se houvesse um único processo de "atualização / atualização", você perderia essa capacidade .
Sem um separado,
apt update
você não pode ver o que seria atualizado!fonte
yum
ednf
execute automaticamente o equivalente a uma atualização ao executar operações relevantes. Por exemplo, o equivalente aapt list --upgradable
éyum check-update
, que atualiza a lista de pacotes se ela não foi atualizada recentemente. Certamente é possível que isso funcione, como pode ser visto em outros gerenciadores de pacotes.sudo apt update
após remover um repositório.yum
/dnf
novamente, a operação de atualização é automática, portanto, uma fonte desativada é removida automaticamente da próxima operação. Mais uma vez, algo que é inteiramente possível.yum
nemdnf
estão instalados. Instalar um deles para substituir umapt update
aumentaria a sobrecarga do sistema e o tempo de aprendizado.Pode-se perguntar por que baixar o programa do repositório formal do Ubuntu
apt
e instalá-lo? Que diferença faria se você o baixasse primeiro e depois o instalasse, em vez de baixar e instalar em uma operação?Bem, depois de ler os comentários e pensar mais sobre isso, entendo que isso se deve à filosofia do Unix , uma filosofia modular que basicamente diz "Cada programa faz uma coisa": primeiro faça o download e instale --- cada ação com seu próprio programa dedicado .
fonte
Em nenhuma distribuição, há um comando update-upgrade, se estiver lá, não passa de aliases predefinidos, tanto quanto eu 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 lá. Então, quando você atualiza, atualiza os pacotes instalados. Mas quando você dist-upgrade, você atualiza por 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ê resolve qualquer problema de sistema de dependência que possa surgir na atualização parcial.
Espero que ajude. Por favor, desculpe o texto bruto como escrito no telefone.
fonte
yum
ednf
faça automaticamente o equivalente a umupdate
na maioria das operações se os dados em cache tiverem idade suficiente. Veja, por exemplo, a discussão sobre a mudança que o comportamento em DNF: lwn.net/Articles/750334