Bonjour,
En préalable je vous suggère instamment de mettre à jour votre client wapt en version 0.8.24 ... Les versions 0.8.16 à 0.8.22 sont affublées d'un bug dans l’icône de notification (wapttray.exe). Des connections tcp ne sont pas libérées, et donc il y a une consommation de ressources quand la session utilisateur reste ouverte plusieurs jours. Ce problème est résolu depuis la 0.8.23 et n'existait pas en 0.8.15 et avant
La clé de désinstallation est (variable globale de type list "uninstallkey" dans le fichier setup.py) est le nom de la clé dans la base de registre de windows où sont stockées les informations sur les logiciels installés (nom, version, éditeur), et en particulier la commande à lancer pour désinstaller un logiciel.
En indiquant la ou les clés de désinstallation dans le setup.py, wapt peut lancer la commande de désinstallation associée au(x) logiciel(s) que le paquet a installés.
Pour renseigner, déclarer une variable "globale" dans le setup.py. La clé est souvent un GUID pour les msi de la forme {AAA-BBB..} ou une chaine simple comme le nom du logiciel : "Audacity_is1"
Exemple :
uninstallkey = ['{E77773E5-944A-453F-97F3-46767AE0A253}']
Notez qu'il s'agit d'une liste (crochets) de chaînes de caractères (guillemets simples ou doubles) On peut mettre plusieurs chaînes de caractères séparées par une virgule (syntaxe standard d'une liste python). Dans ce cas plusieurs logiciels seront désintallés.
uninstallkey = ['{E77773E5-944A-453F-97F3-46767AE0A253}','{45F9FA55-B1DB-42AA-8E3F-7309A2169C4A}']
Pour voir les clés de désinstallation on peut utiliser la commande "wapt-get list-registry logiciel" où logiciel est un ou des mots de recherche sur le nom du logiciel.
wapt-get list-registry office
UninstallKey Software Version Uninstallstring ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- {45F9FA55-B1DB-42AA-8E3F-7309A2169C4A} LibreOffice 4.1 Help Pack (French) 4.1.4.2 {E77773E5-944A-453F-97F3-46767AE0A253} LibreOffice 4.1.5.3 4.1.5.3
list-registry cherche à la fois dans la partie 64bits de le registry et dans la partie 32bits. Si le logiciel n'apparait pas, alors qu'il est installé, vraisemblablement, il est installé dans le profil utilisateur et pas globalement sur le système.
Pour les MSI, wapt-get peut générer automatiquement un paquet d'installation et trouver la clé de désinstallation : - Télécharger le MSI - lancer la commande wapt-get make-template fichiermsi.msi nomdupaquet Le résultat peut être directement construit et uploadé wapt-get make-template "tightvnc-2.7.10-setup-32bit.msi" tis-tightvnc wapt-get.exe build-upload c:\waptdev\tis-tightvnc-wapt
Si la clé de désintallation n'est pas disponible, on peut renseigner à la place la commande à lancer pour désinstaller le logiciel. Cette commande doit être renseignée dans la variable globale uninstallstring Il s'agit là aussi d'une liste. Il faut la laisser vide ou ne pas la définir du tout si la méthode 1 avec uninstallkey fonctionne
uninstallstring = []
Si uninstallstring est renseignée, alors wapt lancer la ou les commandes de cette liste dans un shell (cmd.exe) windows
uninstallstring = ['"C:\Program Files\monlogiciel\uninst\unins000.exe" /SILENT']
Il faut faire attention dans ce cas aux problèmes d'espaces dans les lignes de commande (d'où les guillemets doubles), ajouter les options pour que la désinstallation soit silencieuse, et faire attention si on utilise "program files" ou "program files (x86)' en environnement 64 bits
On peut enfin, s'il s'agit d'un désinstallation très personnalisée, créer une procédure uninstall() dans le setup.py qui sera exécutée lors de la désinstallation du paquet.
destdir = makepath(programfiles32,'myapp') exefile = makepath(destdir,'myapp.exe')
def uninstall(): print "Remove start link" remove_file(makepath(start_menu(1),'myapp.lnk')) print "Remove directory content %s" % destdir remove_tree(destdir) print "Unregister app from registry" unregister_uninstall('myapp',False) print "Uninstall successsful"
Hubert
Le 05/04/2014 16:19, Régis Boullard a écrit :
Bonjour, idem, aucun problème pour l’installation mais impossible de désinstaller. Dans la console le paquet peut être enlevé dans la configuration d’une machine mais le logiciel n’est pas désinstallé sur le poste. Le client est en 8.21, les clés ‘Uninstall’ et ‘UninstallString’ fournies par un ‘wapt-get list-registry …’ sont renseignées dans le script ‘setup’. Le chemin de la clé ‘Uninstall’ doit-il être renseigné complètement ('HKEY_LOCAL_MCHAINE/…’ ) ou juste la clé ? Pouvez-vous fournir un exemple svp ?
Egalement, comment renseigne t’on plusieurs clés ‘Uninstall’ lorsqu’il y en a plusieurs comme pour AdobeAir par exemple ('MSI {B92…}' et ‘AdbeAir’) ou peut-être n’est-ce pas nécessaire.
Régis Boullard Lycée E.Livet 16, rue Dufour 44042 Nantes Cedex 01 06 95 51 38 98
Le 4 avr. 2014 à 11:10, wapt-request@lists.tranquil.it a écrit :
Message: 1 Date: Fri, 04 Apr 2014 10:58:28 +0200 From: Simon Fonteneau sfonteneau@stemarie-aizenay.fr To: wapt@lists.tranquil.it Subject: [Wapt] remove paquet Message-ID: 533E7434.9040307@stemarie-aizenay.fr Content-Type: text/plain; charset="iso-8859-1"; Format="flowed"
Bonjour
Je vient de refaire le test de la fresh installation (deiban 7 i386), plus de bug a l'installation et la console marche.
Probl?me constater :
D?sinstallation de paquet impossible (voir pi?ce jointe) Possible via l'interface du client (liste des paquets)
Pour l'installation des paquet en revanche aucun soucis.
Merci encore
Simon