[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]

Le manuel de programmation de dpkg
Chapter 11 - Déviation - écraser une version de paquet d'un fichier


Il est possible d'éviter à dpkg d'écraser un fichier quand il réinstalle le paquet auquel il appartient, et de mettre le fichier du paquet autre part.

Cela peut être utilisé localement pour écraser une version de paquet d'un fichier, ou par un paquet pour écraser une autre version (ou pour fournir un lien pour elle).

Avant de décider de l'utilisation d'une déviation, lire Les versions alternatives d'une interface - update- alternatives, Chapter 10, pour savoir si tu veux vraiment une déviation plutôt que plusieurs versions alternatives d'un programme.

Il y a une liste de déviation 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 différencier un fichier d'un autre, il doit appelé dpkg-divert dans sa pré-installation pour ajouter la déviation et renommer le fichier existant. Par exemple, supposons qu'un paquet smailwrapper souhaite installer un lien sur /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 de smailwrapper du répertoire /usr/sbin/smail peut contourner la déviation et s'installer 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

N'essaie pas dévier un fichier qui est vital pour le système d'exploitation. Quand on utilise dpkg, il y a un moment, après que le fichier ait été dévié, mais avant que dpkg ait installé la nouvelle version, où le fichier n'existe pas.


[ previous ] [ Contents ] [ 1 ] [ 2 ] [ 3 ] [ 4 ] [ 5 ] [ 6 ] [ 7 ] [ 8 ] [ 9 ] [ 10 ] [ 11 ] [ 12 ] [ 13 ] [ 14 ] [ next ]

Le manuel de programmation de dpkg

15 avril 2002
D. Cure cure@cnam.fr
C. Jacolot jacolot@ubolib.univ-brest.fr