Como a atualização funciona com programas instalados a partir do arquivo .deb

11

Estou tendo algumas dificuldades para entender exatamente como tudo funciona na atualização do Ubuntu e as boas práticas para instalar o software.

Eu entendo que tenho um /etc/apt/sources.listarquivo onde todos os meus repositórios estão listados e que esses repositórios são consultados quando eu uso apt-get update- para serem usados ​​posteriormente com, por exemplo
apt-get upgrade. Isso faz todo o sentido e eu instalei recentemente spotifyadicionando
deb http://repository.spotify.com stable non-freea esta lista de "fontes".

Mas então eu fiquei confuso ...

Quando fui fazer o download do Google Chrome, tive apenas que baixar e pegar um .debarquivo, e o Chrome foi instalado sem nenhum problema ... mas não vejo nenhuma entrada nova em /etc/apt/sources.list...

Então, como apt-get updatesaber onde consultar as atualizações do Chrome? De alguma forma, foi adicionado a um dos repositórios já listados no arquivo de origem?

Gostaria que todo o meu software instalado fosse abrangido pela função de atualização.

Kirbies
fonte

Respostas:

10

Isso é realmente meio complicado. Primeiro, apté um front-end para o dkpgqual realmente lida com a instalação / remoção de pacotes. Portanto, /etc/apt/sources.list(e todos os arquivos /etc/apt/sources.list.d/) são lidos apt, não dpkg.

Agora, quando você baixa um .debarquivo manualmente, está ignorando apte utilizará dpkg -i packagename.debpara instalá-lo. Isso significa que o banco de dados do apt não será atualizado e que o aptsistema não terá conhecimento do pacote que você instalou. Em outras palavras, apt-get upgradese não atualizar quaisquer pacotes instalados manualmente.

Dito isto, chromeé realmente uma exceção à regra. Ao acessar a página de download, você verá esta mensagem:

 insira a descrição da imagem aqui

Na parte inferior está esta nota:

Nota: A instalação do Google Chrome adicionará o repositório do Google para que seu sistema mantenha automaticamente o Google Chrome atualizado. Se você não deseja o repositório do Google, faça “sudo touch / etc / default / google-chrome” antes de instalar o pacote.

Isso significa que o .debpacote inclui um script que adicionará o repositório do Google ao seu sistema (especificamente, ele criará um arquivo em /etc/apt/sources.list.d/), garantindo que chrome será atualizado quando você usar apt-get.

Terdon
fonte
Ok, faz sentido ... mas existe alguma maneira de gerenciar facilmente as atualizações de todos os meus pacotes instalados manualmente?
Kirbies
2
@ Morten não, é exatamente por isso que aptexiste, etc, se você sair desse sistema, estará por sua conta. Existem truques, mas raramente vale a pena o esforço para os poucos pacotes que você pode instalar manualmente.
terdon
1
O gerenciador de pacotes realmente não se importa se um pacote foi instalado pelo dpkg ou pelo apt. Se encontrar uma versão mais recente de um pacote nos repositórios, essa versão mais recente será instalada.
Florian Diesch 17/01/2015
@FlorianDiesch sim, é claro. Meu argumento foi para pacotes que não estão nos repositórios.
terdon
1

O apt pesquisa nas fontes listadas /etc/apt/sources.liste também em todos os arquivos /etc/apt/source.list.d. Você terá um arquivo, como google-chrome.listem /etc/apt/sources.list.dque terá a seguinte linha:

deb http://dl.google.com/linux/chrome/deb/ stable main

Isso é usado como fonte de atualização do google-chrome.

Quando você baixou o arquivo deb para o google-chrome manualmente e o instalou, um script no arquivo deb criou esse arquivo, para que você não precise procurar manualmente por atualizações.

jobin
fonte