Page 1 sur 1

Processus uninstall

Posté : 22 févr. 2018 - 19:21
par gvdbe.fr
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 ?

Re: Processus uninstall

Posté : 23 févr. 2018 - 17:15
par gvdbe.fr
En fait j'ai trouvé. Ce sont les fonctions makepath qui posent soucis...
comme : makepath('C:\MonRépertoire','DiskSpace')

Re: Processus uninstall

Posté : 23 févr. 2018 - 17:29
par htouvet
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')