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

10

Estou tendo algumas dificuldades para entender exatamente como funciona toda a atualização no Ubuntu e boas práticas para instalar software.

Eu entendo que tenho um arquivo /etc/apt/sources.list no qual todos os meus repositórios estão listados e que esses repositórios são consultados quando eu uso apt-get update - para posteriormente ser usado com, por exemplo, apt-get upgrade . Isso faz todo o sentido e instalei recentemente spotify adicionando deb http://repository.spotify.com stable non-free a essa lista de "fontes".

Mas fiquei confuso ...

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

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

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

    
por Kirbies 09.03.2014 / 21:33

2 respostas

9

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

Agora, quando você fizer o download de um arquivo .deb manualmente, estará ignorando apt e usará dpkg -i packagename.deb para instalá-lo. Isso significa que o banco de dados do apt não será atualizado e que o sistema apt não terá conhecimento do pacote que você instalou. Em outras palavras, apt-get upgrade irá nunca atualizar quaisquer pacotes instalados manualmente.

Dito isto, chrome é, na verdade, uma exceção à regra. Quando você vai para a sua página de download, você verá esta mensagem:

Na parte inferior, esta nota:

  

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

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

    
por terdon 09.03.2014 / 21:46
1

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

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

Isso é usado como a fonte para atualizar o google-chrome.

Quando você fez o download do 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.

    
por jobin 09.03.2014 / 21:37