web-dev-qa-db-fra.com

Comment obtenir la version courante d'un package dans les scripts postinst et preinst du fichier deb?

Je crée un paquet debian qui ignore certaines opérations de base de données effectuées dans le script postinst du paquet si sa version précédente est installée. J'ai googlé et trouvé pour RPM mais je n'ai pas pu trouver pour Debian.

Je me demande s’il existe une variable équivalente ou quelque chose de %pre[un] ou %post[un] pour Debian?

2
user3038057

Selon le Debian Policy Manual , le script postinst est appelé avec l'ancien numéro de version comme deuxième argument:

postinst configure most-recently-configured-version

Donc, dans votre postinst, il vous suffit de vérifier cet argument.

Et pour preinst :

  1. Exécutez le preinst du nouveau package:

    Si le paquet est en cours de mise à niveau, appelez:

    new-preinst upgrade old-version
    

    [...]

    Sinon, si le paquet contient des fichiers de configuration d’une version précédente (c’est-à-dire qu’il est dans l’état "Config-Files"):

    new-preinst install old-version
    

    [...]

    Sinon (c’est-à-dire que le paquet a été complètement purgé):

    new-preinst install
    
1
mest