# Events autour de apt

**URL:** <https://www.debian-fr.org/t/events-autour-de-apt/88937>\
**Category:** Programmation\
**Created:** [Octobre 7, 2023, 2:51 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937 "2023-10-07T14:51:43Z")\
**Posts on this page:** 16\
**Page:** 1

<div class="post-metadata">

**Author:** ![mothsART](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mothsart/32/11448_2.png) [@mothsART](https://www.debian-fr.org/u/mothsART)\
**Post date:** [Octobre 7, 2023, 2:51 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/1 "2023-10-07T14:51:43Z")

</div>

Bonjour,

Je cherche à être informé des events autours de apt :

- si ajout d’applications (et quoi)
- si suppression
- si update  
Pour cela, je me suis penché sur dbus et les signaux.

Si je lance :  
`bus-monitor --system "type='signal',sender='org.debian.apt'"`

et que je fais des install/suppression : j’ai strictement aucun event. (alors que pour d’autres sender, ça marche très bien)

Est-ce que je fais mal les choses ?  
Est-ce qu’il n’y a pas une autre méthode pour arriver à mes fins ?

Merci d’avance !

---

<div class="post-metadata">

**Author:** ![loicmtp](https://www.debian-fr.org/user_avatar/www.debian-fr.org/loicmtp/32/13315_2.png) [@loicmtp](https://www.debian-fr.org/u/loicmtp)\
**Post date:** [Octobre 8, 2023, 6:49 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/2 "2023-10-08T06:49:16Z")

</div>

Hello  
Hum…c’est pas dpkg.log?

---

<div class="post-metadata">

**Author:** ![mothsART](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mothsart/32/11448_2.png) [@mothsART](https://www.debian-fr.org/u/mothsART)\
**Post date:** [Octobre 8, 2023, 7:34 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/3 "2023-10-08T07:34:01Z")

</div>

C’est ma solution actuelle oui : faire de l’inotify sur /var/log/apt/history.log et /var/log/dpkg.log  
Mais je trouve ça laid et hasardeux. Ça veut dire parser des fichiers de logs et anticiper tous les cas possibles.  
D-bus propose à la base des API donc un moyen élégant d’interagir entre application.  
Là, j’ai l’impression que la brique dbus de apt ne fonctionne juste pas bien.

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Octobre 8, 2023, 9:40 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/4 "2023-10-08T09:40:13Z")

</div>

[aptdaemon](https://pythonhosted.org/aptdaemon/dbus.html) correspond à la demande, mais retiré de Debian depuis [2016](https://tracker.debian.org/pkg/aptdaemon).

C’est probablement maintenant du côté de **packagekit** / **packagekit-tools** que tu trouveras ton bonheur, ou au moins pour investigation.

```auto
/etc/dbus-1/system.d/org.freedesktop.PackageKit.conf
/usr/bin/pkcon
/usr/bin/pkmon

```

---

<div class="post-metadata">

**Author:** ![mothsART](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mothsart/32/11448_2.png) [@mothsART](https://www.debian-fr.org/u/mothsART)\
**Post date:** [Octobre 8, 2023, 10:19 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/5 "2023-10-08T10:19:17Z")

</div>

Ah, super, merci ! En effet, je vois des choses passer avec PackageKit côté d-bus.  
C’est pas complètement parfait (ça gère les install/suppression de apt mais pas les install à la mano via dpkg)

---

<div class="post-metadata">

**Author:** ![loicmtp](https://www.debian-fr.org/user_avatar/www.debian-fr.org/loicmtp/32/13315_2.png) [@loicmtp](https://www.debian-fr.org/u/loicmtp)\
**Post date:** [Octobre 8, 2023, 10:35 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/6 "2023-10-08T10:35:59Z")

</div>

> [@Verner](#):
>
> C’est probablement maintenant du côté de **packagekit** / **packagekit-tools** que tu trouveras ton bonheur, ou au moins pour investigation.

Mouai, je suis qd meme sceptique:

> Although bug fixes are still released, no major features have been developed since around 2014, and the package’s maintainer predicts that it will gradually be replaced by other tools as technologies such as [Flatpak](https://en.wikipedia.org/wiki/Flatpak) and [Snap](https://en.wikipedia.org/wiki/Snap_(package_manager)) become more popular.[[6]](https://en.wikipedia.org/wiki/PackageKit#cite_note-6)

Sinon il y a le bon vieux synaptic

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Octobre 8, 2023, 10:47 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/7 "2023-10-08T10:47:54Z")

</div>

Le sujet ici n’est du tout de de choisir un outil de gestion de paquets, mais de gérer le traffic apt par **d-bus** , ce que ne gère absolument pas synaptic.  
Les différents outils X, Y, Z ne sont que des surcouches secondaires de dpkg/apt.  
Flatpak et Snap n’ont rien à voir non plus.

---

<div class="post-metadata">

**Author:** ![loicmtp](https://www.debian-fr.org/user_avatar/www.debian-fr.org/loicmtp/32/13315_2.png) [@loicmtp](https://www.debian-fr.org/u/loicmtp)\
**Post date:** [Octobre 8, 2023, 10:49 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/8 "2023-10-08T10:49:19Z")

</div>

> [@Verner](#):
>
> Le sujet ici n’est du tout de de choisir un outil de gestion de paquets, mais de gérer le traffic apt par **d-bus** , ce que ne gère absolument pas synaptic.

j’ai du mal à voir l’intérêt je pense que c’est mon pb

---

<div class="post-metadata">

**Author:** ![mothsART](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mothsart/32/11448_2.png) [@mothsART](https://www.debian-fr.org/u/mothsART)\
**Post date:** [Octobre 8, 2023, 11:06 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/9 "2023-10-08T11:06:16Z")

</div>

L’intérêt c’est d’avoir un programme autonome qui est en interaction direct avec apt.  
Ex : si tu apprends que tel soft est installé, tu peux avoir un comportement diff sur ton appli en temps réel.  
D-Bus a l’avantage d’avoir une API pour interagir avec d’autres applications via des methodes, propriétés et signaux (event).  
Bien évidemment, tu peux faire la même chose via de la ligne de commande encapsulé dans ta propre API (ex: lancer en python une commande via subprocess) mais c’est bcp plus complexe et bancal.

---

<div class="post-metadata">

**Author:** ![mothsART](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mothsart/32/11448_2.png) [@mothsART](https://www.debian-fr.org/u/mothsART)\
**Post date:** [Octobre 8, 2023, 12:32 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/10 "2023-10-08T12:32:59Z")

</div>

Ma question désormais : avec dbus, est-ce qu’on peut avoir l’équivalent de «&nbsp;pkcon get-packages&nbsp;» ou «&nbsp;apt list --installed&nbsp;» ?

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Octobre 8, 2023, 12:48 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/11 "2023-10-08T12:48:44Z")

</div>

Bien que aptdaemon ne soit plus disponible chez Debian, il reste disponible sur launchpad/ubuntu/mint.  
En ouvrant et décortiquant le contenu du paquet, tu trouveras peut-être des commandes d-bus directement exploitales, ou au moins t’en inspirer.

[aptdaemon\_1.1.1+bzr982-0ubuntu39mint1\_all.deb](https://pkgs.org/download/aptdaemon)  
[aptdaemon\_launchpad](https://launchpad.net/ubuntu/+source/aptdaemon)

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Octobre 8, 2023, 1:14 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/12 "2023-10-08T13:14:24Z")

</div>

Sinon, je pose ça là, mais il me semble qu’il y a un fichier de journal qui indiquent toutes les opération effectuées par `dpkg` : `/var/log/dpkg.log`.

---

<div class="post-metadata">

**Author:** ![loicmtp](https://www.debian-fr.org/user_avatar/www.debian-fr.org/loicmtp/32/13315_2.png) [@loicmtp](https://www.debian-fr.org/u/loicmtp)\
**Post date:** [Octobre 8, 2023, 1:25 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/13 "2023-10-08T13:25:35Z")

</div>

> [@Almtesh](#):
>
> Sinon, je pose ça là, mais il me semble qu’il y a un fichier de journal qui indiquent toutes les opération effectuées par `dpkg` : `/var/log/dpkg.log` .

😃  
C’est ce que je disais plus haut

---

<div class="post-metadata">

**Author:** ![mothsART](https://www.debian-fr.org/user_avatar/www.debian-fr.org/mothsart/32/11448_2.png) [@mothsART](https://www.debian-fr.org/u/mothsART)\
**Post date:** [Octobre 8, 2023, 2:05 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/14 "2023-10-08T14:05:57Z")

</div>

ouais, au final, je surveille avec inotify et je fais un diff de «&nbsp;apt list --installed&nbsp;»

---

<div class="post-metadata">

**Author:** ![Verner](https://www.debian-fr.org/letter_avatar_proxy/v4/letter/v/34f0e0/32.png) [@Verner](https://www.debian-fr.org/u/Verner)\
**Post date:** [Octobre 8, 2023, 2:33 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/15 "2023-10-08T14:33:04Z")

</div>

Bien que ce ne soit pas la réponse relative au tracking apt avec dbus, ce ne sont pas les solutions qui manquent directement avec dpkg.

```auto
apth(){ # bash
[-z "$Q"] && read -p 'install|upgrade|remove|rollback|all ? -> ' Q
      case "$Q" in
        install) grep 'install ' /var/log/dpkg.log ;;
        upgrade|remove) grep $Q /var/log/dpkg.log ;;
        rollback) cat /var/log/dpkg.log | grep upgrade |
                  grep "$2" -A10000000 |
                  grep "$3" -B10000000 |
                  awk '{print $4"="$5}' ;;
        all) cat /var/log/dpkg.log ;;
      esac
}

```

---

<div class="post-metadata">

**Author:** ![Almtesh](https://www.debian-fr.org/user_avatar/www.debian-fr.org/almtesh/32/10312_2.png) [@Almtesh](https://www.debian-fr.org/u/Almtesh)\
**Post date:** [Octobre 9, 2023, 10:37 UTC](https://www.debian-fr.org/t/events-autour-de-apt/88937/16 "2023-10-09T10:37:04Z")

</div>

> [@loicmtp](#):
>
> 😃  
> C’est ce que je disais plus haut

Ah ?

> [@loicmtp](#):
>
> Hum…c’est pas dpkg.log?

> [@mothsART](#):
>
> C’est ma solution actuelle oui : faire de l’inotify sur /var/log/apt/history.log et /var/log/dpkg.log

Effectivement, je n’avais pas vu.
