Listar todos os NEWS de pacotes atualizados anteriormente

0

Eu gostaria de poder listar todos os NEWS de pacotes que foram atualizados desde a última vez que executei o script / comando. Isso provavelmente seria executado em um cron job uma vez por semana para fornecer um resumo de qualquer informação de atualização.

O comando apt-listchanges parece com o que eu quero, mas não consigo fazer com que ele se comporte exatamente como descrevi. O comando que eu tentei executar é:

apt-listchanges -f text -a --which=news --save_seen=/var/lib/apt/listchanges.db /var/cache/apt/archives/*.deb

Parece que os pacotes atuais devem ser listados, em vez de apenas verificar todos eles por padrão, então eu dei tudo no cache, não tenho certeza se essa é a melhor maneira de fazer isso.

Mas, o problema maior é que, por padrão, ele mostra apenas as mudanças entre as versões atualmente instaladas, portanto, não mostra alterações. Portanto, adicionei a opção -a para exibir todas as alterações e, em seguida, adicionei a opção save_seen, que afirma que ela será interrompida exibindo as alterações que foram mostradas anteriormente. Mas, toda vez que eu executo o comando, ele exibe todas as alterações todas as vezes.

Existe uma maneira de ajustar o comando para funcionar como esperado? Ou, talvez, alguma outra solução, como usar um hook do apt para anexar o NEWS para cada pacote atualizado a um arquivo, meu script pode simplesmente ler o arquivo e excluir o conteúdo toda vez que ele for executado.

    
por Sam Bull 08.12.2017 / 15:32

1 resposta

0

Eu posso pensar em duas abordagens que não envolvem muito apt-listchanges . Ambos dependem do padrão apt-listchanges hook em apt ; verifique se /etc/apt/apt.conf.d/20listchanges existe no seu sistema. Isso funciona muito bem porque apt-listchanges é executado com a lista de pacotes que apt está prestes a atualizar e pode, portanto, comparar as versões atuais instaladas com essas. O design de apt-listchanges dificulta a exibição após o fato. Você pode usar a opção --since , mas precisa acompanhar os valores apropriados.

A primeira abordagem é configurar apt-listchanges para enviar um email com quaisquer alterações. Isso precisa de uma configuração de correio de trabalho no sistema, o que pode não ser conveniente para você; mas acho muito útil. Na seção [apt] de /etc/apt/listchanges.conf , defina frontend=mail e email_address conforme apropriado; então apt-listchanges será executado sempre que apt for executado e enviará um e-mail contendo os itens de notícias (e / ou changelogs, dependendo da configuração which ).

O segundo, que eu realmente não tentei, é configurar apt-listchanges para simplesmente despejar entradas de notícias e / ou changelogs em sua saída padrão, e redirecionar isso para um arquivo de log que você pode ler sempre que for conveniente. Na seção [apt] de /etc/apt/listchanges.conf , defina frontend=text ; em /etc/apt/apt.conf.d/20listchanges , adicione um redirecionamento anexado ao seu arquivo de destino.

    
por 08.12.2017 / 16:04

Tags