
Olá :) Como as atualizações de software diferem com base na maneira como faço o download do software usando o Ubuntu? Por exemplo, quando faço o download manualmente usando o gerenciador de pacotes apt, ou quando adiciono algum repositório ao /etc/apt/sources.list. Também existe a oportunidade de baixar software usando flatpacks ou snaps.
O que realmente acontece quando eu chamo sudo apt update? Quais repositórios são verificados?
Responder1
Existem muitas maneiras de instalar pacotes de software no Ubuntu, algumas delas você não mencionou. Para dar uma resposta completa, quero descrever todos eles:
Instalação por gerenciador de pacotes, repositórios padrão
O gerenciador de pacotes (não importa se apt
, apt-get
ou aptitude
qualquer outra coisa) tem uma lista de locais para baixar software. Este software é geralmente confiável, conhecido por funcionar e, em sua maioria, bem conservado. Esse local é chamado de "repositório". Os URLs dos repositórios são armazenados em arquivos /etc/apt/sources.list
. Ao executar o apt update
, o gerenciador de pacotes consulta o repositório para saber quais pacotes de software estão disponíveis. Ele armazena as informações em um cache local.
Ao instalar um pacote pelo apt install
, o gerenciador de pacotes verifica seu cache local para determinar de onde baixar o pacote. Em seguida, ele baixa o pacote. O pacote é fornecido como um arquivo no formato DEB. O arquivo é descompactado em seu sistema de arquivos local. Além disso, o pacote pode conter algum código que será executado automaticamente uma vez para configurar o software recém-instalado.
Ao atualizar o software por apt upgrade
ou apt dist-upgrade
, novas versões de pacotes existentes são baixadas. A versão atual é removida do sistema.O gerenciador de pacotes sabe quais arquivos remover, pois sabe qual arquivo foi fornecido por qual pacote.A nova versão é então instalada conforme descrito acima.
Instalação por gerenciador de pacotes, repositórios personalizados
Também é possível expandir os repositórios padrão adicionando URLs a /etc/apt/sources.list
, embora hoje em dia /etc/apt/sources.list.d/
deva ser usado. O gerenciador de pacotes irá considerá-los como repositórios padrão. Instalar, remover e atualizar funcionam exatamente da mesma forma. O usuário deve tomar cuidado ao adicionar repositórios customizados – eles devem ser feitos para o sistema.
Por experiência própria, aconselho remover todos os pacotes instalados de repositórios não padrão antes de fazer uma atualização de uma versão do Ubuntu para a próxima.
Instalação pelo gerenciador de pacotes, download manual
Você também pode baixar arquivos DEB manualmente. Você pode instalar o pacote via dpkg -i
. O gerenciador de pacotes nunca atualizará este pacote, pois não sabe de onde ele veio.
Instalação via snap
snapcraft é uma alternativa ao gerenciador de pacotes voltado para ser compatível não apenas com o Ubuntu derivado do Debian, mas com todas as distribuições Linux. Um pacote snap não é descompactado no sistema. Além disso, ele é montado (seu conteúdo fica visível diretamente) e o software é executado em um ambiente controlado dentro do seu sistema (pense em sandboxing e máquinas virtuais). Ao remover um snap, o pacote é desmontado e removido. As atualizações acontecem de forma análoga.
Instalação totalmente manual
Você também pode baixar vários arquivos e colocá-los em locais apropriados em seu disco rígido. O software personalizado geralmente entra em /opt. Os binários (ou links para eles) são instalados em um diretório no formato $PATH
. Dessa forma, o software pode ser acessado facilmente. O gerenciador de pacotes não sabe nada sobre este software. As atualizações também precisam ser instaladas manualmente (às vezes o software possui uma função de autoatualização, difícil). Software personalizado também pode ser instalado em locais como /usr/local
ou mesmo /usr
. Este último não deve ser feito a menos que você realmente saiba o que está fazendo. O software personalizado pode colidir terrivelmente com o software controlado pelo gerenciador de pacotes.
Perguntas semelhantes:
Atualizações de software Ubuntu com apt-get
Faz diferença se eu atualizo pacotes via Apper ou pelo Centro de Software no Debian?
Responder2
Eu sugeriria apenas instalar software das fontes fornecidas pelo seu distribuidor. Adicione repositórios manualmente ou instale pacotes ou outro software manualmente apenas se você souber exatamente o que está fazendo. Quanto à questão, o que sudo apt update
faz: está buscando os pacotes disponíveis mais recentes de todos os repositórios configurados. O mesmo se aplica a snaps ou flatpacks. Depois de instalá-los a partir de um repositório central, você receberá atualizações de maneira semelhante ao apt update
.
Responder3
apt update
atualiza a lista de pacotes disponíveis nos repositórios que estão em /etc/apt/sources.list
e em quaisquer arquivos que estejam em /etc/apt/sources.list.d/
. É importante executar isso primeiro para apt
saber sobre as versões mais recentes dos pacotes.
apt upgrade
na verdade, atualiza os pacotes instalados que possuem versões mais recentes disponíveis, desde que tenham sido instalados apt
e que os repositórios de onde vieram estejam nos locais acima.
Pacotes de snap
e flatpak
não serão atualizados apt
porque os repositórios são diferentes e não estarão no apt
cache/banco de dados de.
Responder4
apt update
verifica todas as suas fontes de software, portanto, estes são os repositórios da distribuição e qualquer PPA que você adicionou. AFAIK isso não inclui flatpak (use flatpak update
para isso), mas pode incluir snap se for assim que a distro o instala. Coisas que você instalou manualmente (baixado .deb ou outro meio de instalação) obviamente não são verificadas dessa forma.
Mas tenha em mente que o Ubuntu tem sua própria política de atualização, parte da distro é atualizada até o fim da vida útil da distro (repositório "principal"), outros recebem pouca ou nenhuma atualização (repositório "universo" e outros) (e a maioria pacote instalado por snap não está em "principal").