Aqui está um rascunho de um script bash / zsh que imprime tudo o que você deseja.
Ele funciona apenas para pacotes atualizáveis, não para qualquer novo pacote que esteja instalado devido a dependências alteradas. Não funciona corretamente para atualizações de segurança ou estáveis. E se o link não está atualizado (não inclui a versão para a qual pode ser atualizado), ele imprime todos os changelog entradas. Outro problema (ou recurso, se você quiser) é que ele imprime as entradas por pacote binário, não por pacote-fonte. Portanto, você provavelmente terá duplicações. Você vê, há muito espaço para melhorias. Precisa do apt-show-versions
instalado.
#!/bin/bash
FLAVOURS=(main contrib non-free)
TEMPFILE=$(mktemp)
trap "rm -f $TEMPFILE; exit" SIGHUP SIGINT SIGTERM
apt-show-versions -u | while read PACKAGE A B FROM C TO ; do
PACKAGE=${PACKAGE%%/*}
SOURCEPACKAGE=$(dpkg-query -W -f '${Source}' $PACKAGE)
SOURCEPACKAGE=${SOURCEPACKAGE%% *}
SOURCEPACKAGE=${SOURCEPACKAGE:-$PACKAGE}
PREFIX=${SOURCEPACKAGE:0:1}
if expr match $SOURCEPACKAGE "lib.*" > /dev/null ; then
PREFIX=${SOURCEPACKAGE:0:4}
fi
echo Changelog for $PACKAGE from $FROM to $TO
for i in $FLAVOURS ; do
if wget -q "http://packages.debian.org/changelogs/pool/$i/$PREFIX/$SOURCEPACKAGE/current/changelog.txt" -O $TEMPFILE ; then
dpkg-parsechangelog --since "$FROM" --to "$TO" -l$TEMPFILE | sed -e "1,/Changes:/d"
break
fi
done
echo
done
rm $TEMPFILE
Se você não precisar de todas as informações de maneira automatizada, poderá usar a interface do usuário de aptitude
. Lá você pode ver quais pacotes podem ser atualizados e obter o log de alterações correspondente com as novas entradas destacadas pressionando C
.