Package vide pour désinstaller une application

Questions about WAPT Packaging / Requêtes et aides autour des paquets Wapt.
Règles du forum
Règles du forum communautaire
* English support on www.reddit.com/r/wapt
* Le support communautaire en français se fait sur ce forum
* Merci de préfixer le titre du topic par [RESOLU] s'il est résolu.
* Merci de ne pas modifier un topic qui est taggé [RESOLU]. Ouvrez un nouveau topic en référençant l'ancien
* Préciser version de WAPT installée, version complète ET numéro de build (2.2.1.11957 / 2.2.2.12337 / etc.) AINSI QUE l'édition Enterprise / Discovery
* Les versions 1.8.2 et antérieures ne sont plus maintenues. Les seules questions acceptées vis à vis de la version 1.8.2 sont liés à la mise à jour vers une version supportée (2.1, 2.2, etc.)
* Préciser OS du serveur (Linux / Windows) et version (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019)
* Préciser OS de la machine d'administration/création des paquets et de la machine avec l'agent qui pose problème le cas échéant (Windows 7 / 10 / 11 / Debian 11 / etc.)
* Eviter de poser plusieurs questions lors de l'ouverture de topic, sinon il risque d'être ignorer. Si plusieurs sujet, ouvrir plusieurs topic, et de préférence les uns après les autres et pas tous en même temps (ie ne pas spammer le forum).
* Inclure directement les morceaux de code, les captures d'écran et autres images directement dans le post. Les liens vers les pastebin, les bitly et autres sites tierces seront systématiquement supprimés.
* Comme tout forum communautaire, le support est fait bénévolement par les membres. Si vous avez besoin d'un support commercial, vous pouvez contacter le service commercial Tranquil IT au 02.40.97.57.55
benoitpatin
Messages : 37
Inscription : 21 févr. 2018 - 17:05

22 mars 2018 - 09:44

Bonjour,

- Version de WAPT installée : 1.5.1.18 Community
- OS du serveur Linux Debian 9
- OS de la machine d'administration/création des paquets : Windows 10

Je voudrais créer un package sans source avec juste une commande pour désinstaller un programme sur mes ordinateurs.

Je n'ai pas les sources d'origine de l'application.
Avec la commande wapt-get list-registry nom_du_logiciel j'arrive à récupérer la Uninstallstring et le uninstallkey sur une machine cible.

J'ai donc bêtement créé un package vide avec les infos données :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['Foxit Reader_is1']


def uninstall():
    print('uninstalling Foxit Reader')
    run(r'"C:\Program Files (x86)\Foxit Software\Foxit Reader\unins000.exe"')
Mais ça ne semble pas bien fonctionner. Comme c'est mon 2ème package je pense qu'il me manque 2-3 trucs pour y arriver.
Quelqu'un pour m'aider ?

Merci
Avatar de l’utilisateur
agauvrit
Expert WAPT
Messages : 238
Inscription : 17 nov. 2016 - 10:25
Localisation : Nantes
Contact :

22 mars 2018 - 10:03

Bonjour Benoît,

La fonction uninstall permet de désinstaller un logiciel déployé avec WAPT, si on veut désinstaller directement un logiciel il faut ecrire ce code dans la fonction install du paquet.

Si tu veux désinstaller un logiciel dans toutes les version possibles il est préférable d'utiliser une fonction du type :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('18'):
                run(WAPT.uninstall_cmd(soft['key']))
benoitpatin
Messages : 37
Inscription : 21 févr. 2018 - 17:05

22 mars 2018 - 14:17

Super la réponse rapide :D

Par contre j'ai besoin de quelques précisions...

Code : Tout sélectionner

def install():
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('18'):
                run(WAPT.uninstall_cmd(soft['key']))
Le mot version entre simple quote et crochet doit correspondre à la version dans mon ajout/suppression de programmes ?
Le mot key entre simple quote et crochet doit correspondre à quoi ? Le uninstallkey ou le uninstallstring ?
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1783
Inscription : 10 juil. 2014 - 23:52
Contact :

22 mars 2018 - 14:46

benoitpatin a écrit : 22 mars 2018 - 14:17 Le mot version entre simple quote et crochet doit correspondre à la version dans mon ajout/suppression de programmes ?
Oui
benoitpatin a écrit : 22 mars 2018 - 14:17 Le mot key entre simple quote et crochet doit correspondre à quoi ? Le uninstallkey ou le uninstallstring ?
Le mot key ne doit pas être remplacé, on va récupérer la valeur key dans la uninstallkey en cour de test
benoitpatin
Messages : 37
Inscription : 21 févr. 2018 - 17:05

22 mars 2018 - 14:57

Ok, super, voici donc min setup.py :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['Foxit Reader_is1']


def install():
    print('uninstalling Foxit Reader')
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('8.2.1.6871'):
            run(WAPT.uninstall_cmd(soft['key']))
Je build, j'upload, je lance le package sur ma machine mais rien ne se passe.
Je n'ai pas d'erreur nulle part. J'ai loupé un truc ?
Avatar de l’utilisateur
sfonteneau
Expert WAPT
Messages : 1783
Inscription : 10 juil. 2014 - 23:52
Contact :

22 mars 2018 - 15:17

Pas d'erreur dans votre code pour moi.

Sur la machine sur laquelle vous testez.

Pouvez-vous executer un :

Code : Tout sélectionner

wapt-get list-registry Foxit


pour voir ce que cela donne
Avatar de l’utilisateur
agauvrit
Expert WAPT
Messages : 238
Inscription : 17 nov. 2016 - 10:25
Localisation : Nantes
Contact :

22 mars 2018 - 15:18

Pour voir la liste des potentiels logiciels concernés :

Code : Tout sélectionner

wapt-get list-registry Foxit Reader
Si le logiciel n'apparait pas, il ne sera pas désinstallé, possible qu'il faille ne mettre que "Foxit" comme mot-clé de recherche

Alexandre
benoitpatin
Messages : 37
Inscription : 21 févr. 2018 - 17:05

22 mars 2018 - 15:22

Code : Tout sélectionner

UninstallKey                           Software                                                              Version             Uninstallstring                        
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Foxit Reader_is1                       Foxit Reader                                                          8.2.1.6871          "C:\Program Files (x86)\Foxit Software\Foxit Reader\unins000.exe"
Avatar de l’utilisateur
agauvrit
Expert WAPT
Messages : 238
Inscription : 17 nov. 2016 - 10:25
Localisation : Nantes
Contact :

22 mars 2018 - 15:27

la version retournée est égale à la version imposée dans le test de version (8.2.1.6871) donc il n'est pas désinstallé.

Pour être plus "bourrin" on peut écrire la désinstallation complète de toutes les version possibles comme ceci :

Code : Tout sélectionner

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['Foxit Reader_is1']


def install():
    print('uninstalling Foxit Reader')
    for soft in installed_softwares('Foxit Reader'):
            run(WAPT.uninstall_cmd(soft['key']))
benoitpatin
Messages : 37
Inscription : 21 févr. 2018 - 17:05

22 mars 2018 - 17:32

Ca ne fonctionne pas et je ne vois pas de message d'erreur nulle part (en même temps y'en a peut être pas...d'erreur !)
Comment je peux troubleshooter ?
Verrouillé