[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ suivant ]


La Charte Debian
Annexe G - Les déviations - remplacer la version d'un fichier contenue dans un paquet.


Quand dpkg réinstalle un paquet, on peut faire que tel ancien fichier ne soit pas remplacé et que le nouveau fichier correspondant soit mis ailleurs.

Une utilisation locale de cette technique peut être de remplacer la version d'un fichier contenue dans un paquet ; un paquet peut aussi s'en servir pour remplacer tel fichier d'un autre paquet ou bien pour mettre à sa place un « wrapper ».

Avant de décider de l'utilisation d'une déviation, lire Versions alternatives d'une interface - update-alternatives (annexe tirée de l'ancien Packaging Manual), Annexe F, pour savoir si on veut vraiment une déviation plutôt que plusieurs versions différentes d'un même programme.

Il y a une liste des déviations qui est lue par dpkg et mise à jour par un programme spécial dpkg-divert. Voir dpkg-divert(8) pour plus de renseignements sur ses arguments.

Quand un paquet souhaite remplacer un fichier par un autre, il doit appeler dpkg-divert dans son fichier « preinst » pour ajouter la déviation et changer le nom du fichier existant. Par exemple, supposons qu'un paquet smailwrapper souhaite installer un « wrapper » pour /usr/sbin/smail :

        if [ install = "$1"  ]; then
            dpkg-divert --package smailwrapper --add --rename \
                        --divert /usr/sbin/smail.real /usr/sbin/smail
        fi

Le test de $1 est nécessaire afin que le script n'essaye pas d'ajouter encore la déviation quand smailwrapper est mis à jour. L'option --package smailwrapper assure que la copie du fichier /usr/sbin/smail contenue dans le paquet smailwrapper évitera la déviation et s'installera comme la vraie version.

Le postrm fait l'inverse :

        if [ remove = "$1" ]; then
            dpkg-divert --package smailwrapper --remove --rename \
                        --divert /usr/sbin/smail.real /usr/sbin/smail
        fi

Il ne faut pas essayer de remplacer un fichier vital pour la marche du système. Il y a en effet un moment, quand on utilise dpkg, après que le fichier a été dévié, mais avant que dpkg ait installé la nouvelle version, où le fichier n'existe pas.


[ précédent ] [ Table des matières ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ A ] [ B ] [ C ] [ D ] [ E ] [ F ] [ G ] [ suivant ]


La Charte Debian

version 3.7.2.2

La liste de diffusion Debian-Policy