Prática recomendada para o pacote de atualização automática?

0

Estou construindo um pacote Linux para um aplicativo que desenvolvi. Eu estou verificando se há atualizações quando ele é iniciado e instalando atualizações por meio do acionamento de sudo apt-get install <package> , o que, é claro, solicita permissão ao usuário.

Qual é a melhor prática / maneira apropriada de fazer isso? Minha metodologia atual é comum ou ideal? Se não, o que devo fazer?

Eu não estou procurando alguém para fazer o trabalho para mim; Eu só quero ser apontado na direção certa para que meu aplicativo siga o comportamento esperado. Muito obrigado!

    
por Alderis 24.01.2016 / 19:51

2 respostas

1

Você deve fornecer um repositório público, como um PPA, e contar com o gerenciador de pacotes para descobrir e instalar atualizações, em vez de fazer isso a partir do seu programa:

  • Para que sua atualização possa ser instalada via apt-get , você precisa executar apt-get update primeiro para carregar as informações atualizadas do pacote. Isso pode levar algum tempo e causar muito tráfego de rede.
  • Um usuário normal pode não conseguir usar nenhum comando apt-get .
  • Suas chamadas apt-get podem ser bloqueadas porque outro processo está acessando o gerenciador de pacotes ou pode impedir que outros processos façam isso.
por Florian Diesch 24.01.2016 / 20:27
1

Se você usa um repositório, provavelmente pode depender de unattended-upgrades e adicionar um arquivo de configuração para baixar e instalar automaticamente as atualizações do seu repositório. Por exemplo, um arquivo em /etc/apt/apt.conf.d chamado 60my-repo-upgrade , contendo:

Unattended-Upgrade::Allowed-Origins {
    "<origin>:<archive>";
};

Em que <origin> e <archive> são do arquivo Release do seu repositório. pode ser obtido a partir da saída de apt-cache policy . Por exemplo, o repositório do Google Chrome tem <origin> como Google, Inc. e <archive> como stable :

$ apt-cache policy | grep -i google
 500 http://dl.google.com/linux/chrome/deb/ stable/main i386 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com
 500 http://dl.google.com/linux/chrome/deb/ stable/main amd64 Packages
     release v=1.0,o=Google, Inc.,a=stable,n=stable,l=Google,c=main
     origin dl.google.com

Dessa forma, o usuário pode modificar a configuração, se necessário, e decidir um agendamento para unattended-upgrades .

    
por muru 24.01.2016 / 20:28