Processus uninstall

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
gvdbe.fr
Messages : 2
Inscription : 22 févr. 2018 - 19:02

22 févr. 2018 - 19:21

wapt-get 1.3.13.0

Bonsoir,
J'ai crée un package qui copie un .exe dans un répertoire sans droit particulier requis, et enfin créer une clef de registre.

J'avais inséré dans la procedure "def uninstall()", l'ensemble des process à effectuer pour la désinstallation, mais j'ai une erreur de type fichier non trouvé.

En commentant mes actions dans la "def uninstall", j'ai été surpris et ai compris tardivement que la simple définition de la procédure 'uninstall' sans actions, effectue une suppression du ".exe" et la suppression de la cléf de registre; et tente de supprimer le répertoire.
Je suis surpris que le package connaisse toutes ces actions ! Et je me suis posé la question s'il y avait pas un cache du package. Purge par wapt-get clean et update ne change rien. Purge du package dans le repository non plus.

Problème dans mes deux variantes de package, avec ou sans action dans le "def uninstall", j'ai tout de même une alerte qui fait echoué le processus de désinstallation qui est quand même incomplet, la suppression du répertoire, et à priori le uninstall n'y arrive pas.

Removing diskspace ...
2018-02-22 19:07:34,961 WARNING error: (2, 'GetFileVersionInfo:GetFileVersionInfoSize', 'The system cannot find the file specified.')
2018-02-22 19:07:34,964 WARNING error: (2, 'GetFileVersionInfo:GetFileVersionInfoSize', 'The system cannot find the file specified.')
2018-02-22 19:07:34,967 WARNING error: (2, 'GetFileVersionInfo:GetFileVersionInfoSize', 'The system cannot find the file specified.')
2018-02-22 19:07:34,969 CRITICAL Error running uninstall script: [Errno 2] No such file or directory: 'DiskSpace.exe'
=== Removed packages ===
diskspace
=== Error removing packages ===
diskspace

Voici ce que j'ai dans mon uninstall :
def uninstall():
print('uninstalling GRDF-DiskSpace')
# killalltasks('DiskSpace.exe')
# registry_delete(HKEY_LOCAL_MACHINE, r'software\Microsoft\Windows\CurrentVersion\Run','DiskSpace')
# time.sleep(5)
# if isdir(DiskSpacePath):
# remove_tree(DiskSpacePath,ignore_errors=True)

Est-ce que quelqu'un à une idée ?
gvdbe.fr
Messages : 2
Inscription : 22 févr. 2018 - 19:02

23 févr. 2018 - 17:15

En fait j'ai trouvé. Ce sont les fonctions makepath qui posent soucis...
comme : makepath('C:\MonRépertoire','DiskSpace')
Avatar de l’utilisateur
htouvet
Expert WAPT
Messages : 402
Inscription : 16 mars 2015 - 10:48
Contact :

23 févr. 2018 - 17:29

en python (et d'autres langages) le '\' dans une chaine permet d'encoder des retours à la ligne '\n' par exemple.

Pour éviter que python interprète les backslahes, il faut mettre un préfixe 'r' (raw strings)
Si il y a des accents, il faut en général préciser une chaîne unicode (préfixe 'u')

Code : Tout sélectionner

makepath(ur'C:\MonRépertoire','DiskSpace')
Tranquil IT
Verrouillé