georges mariano wrote:
On Sat, 13 Oct 2001 16:01:48 +0200 Patrice Karatchentzeff <[EMAIL PROTECTED]>
wrote:
PK > Bon courage :-)
Voui ;-)
La solution proposée est évidemment la bonne voie...
Pourquoi apt-get serait-elle une application qui ne saurait faire
des logs alors que des trucs bcp plus "lourds" le font bien
(apache, samba ...) ???
C'est un "problème" de volonté (?) upstream Debian ...
En fait, l'idée a également été évoquée sur la liste debian-dpkg par
Joey Hess :
http://lists.debian.org/debian-dpkg/2001/debian-dpkg-200109/msg00074.html
Dans les réponses intéressantes, j'ai notamment relevé que Ben Collins a
indiqué qu'une branche du CVS de dpkg contient des modifications faites
par lui pour le support du logging ( et aussi du format bz2)
(http://lists.debian.org/debian-dpkg/2001/debian-dpkg-200109/msg00075.html).
D'autres personnes ont également évoqué dans la discussion la
possibilité de logger le résultat des scripts d'installation des
packages (bien que ça soit AMA un peu différent de l'objectif
recherché). Enfin, Adam Heath parle de la possibilité d'utiliser
l'option --status-pipe de dpkg
(http://lists.debian.org/debian-dpkg/2001/debian-dpkg-200110/msg00005.html).
Je suppose qu'il voulait parler de --status-fd n car l'option
--status-pipes n'existe pas. Cette option est intéressante et donne par
exemple :
[EMAIL PROTECTED]:~$ sudo dpkg --status-fd 2 -i ~/dev/hello_1.3-18_i386.deb 2>
dpkg-install.log
Password:
Selecting previously deselected package hello.
(Reading database ... 44385 files and directories currently installed.)
Unpacking hello (from .../fred/dev/hello_1.3-18_i386.deb) ...
Setting up hello (1.3-18) ...
[EMAIL PROTECTED]:~$ cat dpkg-install.log
status: hello: half-installed
status: hello: unpacked
status: hello: unpacked
status: hello: unpacked
status: hello: half-configured
status: hello: installed
[EMAIL PROTECTED]:~$
Il manque ici des infos sur la date d'exécution de la commande,
l'utilisateur, mais ça peut servir comme base de départ. Ensuite, on
peut faire un wrapper très simple pour dpkg comme ceci :
[EMAIL PROTECTED]:$ cat /usr/bin/dpkg
#!/bin/sh
/usr/bin/dpkg.old --status-fd 2 $* 2>>/var/log/dpkg.log
et de renommer auparavant bien sur l'actuel dpkg en dpkg.old (oui, je
sais, ce n'est pas propre du tout par rapport aux principes Debian). Et
on logge alors ensuite toutes les modifications des packages quel que
soit le frontal utilisé (apt, dselect ou autres).
Pour modifier le format des messages, il "suffit" d'aller modifier le
source de dpkg dans la fonction modstatdb_note de
dpkg-1.9.17/lib/dbmodify.c avec le format désiré. Pour le source de
départ, c'est :
"status: %s: %s\n", pkg->name, statusinfos[pkg->status].name
Ça peut servir comme solution de dépannage, mais certainement pas à long
terme, mais je fais confiance aux développeurs Debian pour nous sortir
une solution souple, propre et élégante (comme d'habitude).
Mes 0.02¢
Fred