Obtendo o diff de uma atualização de pacote

1

Antes (ou depois) de atualizar um pacote com apt-get update , como posso ver o código-fonte diferenciado entre a versão nova e a antiga?

    
por August Karlstrom 11.05.2015 / 13:30

2 respostas

0

Você pode baixar o código-fonte dos repositórios da Debian usando:

apt-get source <PACKAGE>

Ele baixará três arquivos, um .dsc que descreve o pacote, um .orig.tar.gz que contém o código-fonte e um .diff.gz que contém as alterações.

Isso funcionará se, em /etc/apt/sources.list/ , você tiver incluído deb-src entradas, por exemplo:

deb http://ftp.de.debian.org/debian/ wheezy main
deb-src http://ftp.de.debian.org/debian/ wheezy main

Permitir-me-á descarregar deb packages, desde que o código fonte dos repositórios Debian Wheezy .

    
por 11.05.2015 / 13:55
3

A abordagem mais geral é comparar os dois pacotes de origem correspondentes à versão da qual você está atualizando e a versão para a qual você está atualizando. Para encontrar o primeiro, você pode precisar olhar através dos snapshots ; este último deve estar disponível no seu arquivo. Em seguida, execute debdiff nos dois arquivos .dsc .

Veja um exemplo, comparando stella 4.1.1-1 (a versão anterior em unstable ) e 4.6. 1-2 (a versão atual em unstable ):

dget http://snapshot.debian.org/archive/debian/20140916T041024Z/pool/main/s/stella/stella_4.1.1-1.dsc
dget http://http.debian.net/debian/pool/main/s/stella/stella_4.6.1-2.dsc
debdiff stella_4.1.1-1.dsc stella_4.6.1-2.dsc

Em geral, você pode substituir a segunda linha por

apt-get --download-only source stella

Em alguns casos, ferramentas mais específicas podem ser usadas; O pacote de stella é mantido em git , então você pode executar

debcheckout stella
cd stella
git diff debian/4.1.1-1 debian/4.6.1-2

para comparar as tags diretamente.

dget , debdiff e debcheckout estão no pacote devscripts .

    
por 11.05.2015 / 13:58