64 votes

Voir les changelogs d'apt-get pour les paquets à mettre à jour

Cette question décrit comment obtenir le journal des modifications pour un paquet donné. Cependant, il s'agit du changelog complet.

Ce que j'aimerais, c'est un moyen de voir ce qui sera modifié dans ce que je suis sur le point de mettre à jour. Par exemple, j'imaginais quelque chose comme :

$ sudo apt-get upgrade --show-changelogs
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Calculating upgrade... Done
The following packages will be upgraded:
  foo
    -- adds the bar feature for better snazziness
    -- removes the deprecated baz feature

1 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
Need to get 8,864 kB of archives.
After this operation, 285 kB disk space will be freed.
Do you want to continue [Y/n]? 

Malheureusement, je ne vois rien de tel dans les pages de manuel d'apt-get. Est-ce que cela ou quelque chose de similaire existe ?

UPDATE: J'ai écrit un court article de blog qui parle d'apt-listchanges et de Debian changelogs de manière un peu plus approfondie et qui intègre certains des commentaires de cette question.

63voto

La chose la plus proche de ce que vous recherchez peut être obtenue avec un paquet appelé apt-listchanges qui vous donnera un résumé du journal des modifications lors de la mise à jour des paquets. Vous pouvez le configurer de manière à ce que les notes du journal des modifications apparaissent dans le terminal directement après la mise à jour des paquets. apt-get télécharge la mise à niveau (voir l'explication et la capture d'écran ci-dessous), mais avant de l'installer.

Vous pouvez installer le programme avec

sudo apt-get install apt-listchanges

puis le configurer avec

sudo dpkg-reconfigure apt-listchanges

Le fichier de configuration créé est /etc/apt/listchanges.conf .

Dans ma configuration, les informations du journal des modifications sont affichées directement sous forme de texte dans le terminal (stdout), ce qui est exactement ce que vous vouliez. Je trouve que c'est mieux que d'avoir un pager qui charge l'information. J'ai juste sélectionné changelogs dans mon fichier de configuration, donc les nouvelles concernant le paquet ne sont pas affichées. Je l'ai également configuré pour envoyer par courriel à la racine l'extrait du changelog. Vous devez configurer le courrier électronique local en faisant référence à mon article ici si vous voulez utiliser cette fonction.

C'est mon /etc/apt/listchanges.conf :

[apt]
frontend=text
email_address=root
confirm=1
save_seen=/var/lib/apt/listchanges.db
which=changelogs

Une capture d'écran de la procédure de mise à niveau lorsque apt-listchanges est installé. Je l'ai configuré pour qu'il me demande une confirmation d'installation après avoir lu l'extrait du changelog.

enter image description here

Pour plus d'informations, voir man apt-listchanges y les pages de manuel Ubuntu en ligne .

15voto

Will Points 271

J'utilise aptitude :

$ aptitude changelog package-name

Voir cette question : apt changelog pour les paquets à installer

3voto

Maciej Łebkowski Points 2869
$ apt changelog firefox

Ça marche pour moi. Pour les PPAs externes, il échoue, même si celui-ci se trouve à http://changelogs.ubuntu.com/changelogs/binary/p/plasma-framework/5.67.0-0ubuntu2/changelog

$ apt changelog plasma-framework
E: Ophalen van changelog:/plasma-framework.changelog is mislukt  Logbestand met veranderingen niet beschikbaar voor plasma-framework=5.67.0-0ubuntu2~ubuntu19.10~ppa1

Ou plus utile, via Synaptic :

This change is not coming from a source that supports changelogs.

Failed to fetch the changelog for plasma-framework
URI was: http://ppa.launchpad.net/pool/main/p/plasma-framework/plasma-framework_5.67.0-0ubuntu2~ubuntu19.10~ppa1_amd64.changelog

Ce qui ne marche pas :

E: ERROR: couldn't open /root/.synaptic/synaptic.conf for writing - ofstream (5: Input/output error)
E: An error occurred while saving configurations.

0voto

yPhil Points 1357

Vous pourriez faire quelque chose comme ceci

fullList=$(apt list --upgradable 2> /dev/null)
shortList=$(echo "${fullList}" | cut -f1 -d"/" | sed s/Listing...//)

for pkg in $shortList ; do
    echo "## ${pkg}"
    apt-get changelog ${pkg}
done

Appuyez sur q pour lire le journal des modifications pour chaque paquet ; si vous redirigez la sortie du pager vers un fichier, il parcourra la liste en boucle jusqu'à la fin, bien que lentement.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X