Page 1 sur 2

Package vide pour désinstaller une application

Publié : 22 mars 2018 - 09:44
par benoitpatin
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

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 10:03
par agauvrit
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']))

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 14:17
par benoitpatin
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 ?

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 14:46
par sfonteneau
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

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 14:57
par benoitpatin
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 ?

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 15:17
par sfonteneau
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

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 15:18
par agauvrit
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

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 15:22
par benoitpatin

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"

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 15:27
par agauvrit
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']))

Re: Package vide pour désinstaller une application

Publié : 22 mars 2018 - 17:32
par benoitpatin
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 ?