[Wapt] remove paquet

Hubert TOUVET htouvet at tranquil.it
Sat Apr 5 21:56:56 CEST 2014


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 at lists.tranquil.it a écrit :
>
>>
>> ----------------------------------------------------------------------
>>
>> Message: 1
>> Date: Fri, 04 Apr 2014 10:58:28 +0200
>> From: Simon Fonteneau <sfonteneau at stemarie-aizenay.fr>
>> To: wapt at lists.tranquil.it
>> Subject: [Wapt] remove paquet
>> Message-ID: <533E7434.9040307 at 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
>> -- 
>>

-- 
Hubert TOUVET
Tranquil IT Systems
02 40 97 57 57




More information about the WAPT mailing list