Page 1 sur 1
Indiquer la validité d'une installation
Posté : 06 mars 2017 - 16:00
par raikyn
Bonjour,
Je crée régulièrement des paquets depuis un peu plus d'un an et je rencontre un "problème" :
J'ai crée un paquet pour installer un logiciel métier (ERDAS 2014 en l’occurrence), celui-ci s'installe sans aucun problème mais WAPT considère que l'installation est incorrecte, aucune idée de la raison.
Du coup, ce paquet (malgré sa bonne configuration) tentera de se réinstaller à chaque fois qu'une modification sera effectuée sur les PCs où le paquet est installé.
Ma question est la suivante : Est-il possible d'indiquer à WAPT (via la console) qu'un paquet est bien installé? (Forcer l'état OK?).
Je ne souhaite pas utiliser la fonction "Oublier le paquet", car je souhaiterai pouvoir désinstaller celui-ci proprement via la console WAPT quand besoin est.
Si cette possibilité n'existe pas, ce serait peut-être une idée d'implémentation non?
Re: Indiquer la validité d'une installation
Posté : 06 mars 2017 - 16:30
par sfonteneau
Bonjour
Pour vous aider nous avons besoin d'avoir le contenue du paquet (setup.py)
Si par exemple vous lancer un run il est possible que celui-ci ne renvoie pas un status 0 et donc wapt considère que l’installation a échouée.
Pour savoir exactement que qui dit wapt il faut nous indiquer l'erreur:
https://www.wapt.fr/fr/doc/Utilisation/ ... et-general
Simon
Re: Indiquer la validité d'une installation
Posté : 07 mars 2017 - 08:53
par raikyn
Bonjour, apparement c'est bien un problème de "status" qui n'est pas à 0
Voici le contenu du setup.py :
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = ['{4099F374-39B8-4226-9AC2-2069CEE8BF82}']
def install():
run(r'"foundation\Setup.exe" /s ERDASFoundation2014 /ni ACCEPT_EULA=1')
L'erreur :
CalledProcessError: Command '('"foundation\\Setup.exe" /s ERDASFoundation2014 /ni ACCEPT_EULA=1',)' returned non-zero exit status 1
Je précise qui si je lance cette commande depuis l'invite de commande directement sur le PC, je n'ai aucune erreur.
Re: Indiquer la validité d'une installation
Posté : 07 mars 2017 - 11:01
par Floflobel
Bonjour,
Personnellement j'utilise la fonction install_exe_if_needed:
https://dev.tranquil.it/sphinxdocs/sour ... _if_needed
Il faudra au préalable vous munir de l'uninstall_key, voici ou elle se trouve :
Code : Tout sélectionner
# For OS 64bits and Software 32bits version : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
# For OS 32 bits or 64bits (and Software 64bits version) : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
Cordialement,
Re: Indiquer la validité d'une installation
Posté : 07 mars 2017 - 18:01
par sfonteneau
La fonction install_exe_if_needed basculera également en erreur.
https://dev.tranquil.it/sphinxdocs/sour ... _if_needed
En effet celle-ci accepte les exit code 0, 3010 le code retour n'en fait pas partie 1 n'en fait partie.
Effectivement si vous utilisez install_exe_if_needed au deuxième passage celui-ci ne devrait pas générer d'erreur car la uninstallkey sera trouvée !
Vous pouvez si vous le souhaitez ajouter l'exit code 1 comme ok pour wapt.
run('"install.exe" /s',accept_returncodes=[0, 1, 3010])
Mais l' exit code 1 est t'il un exit code normal ?
Simon
Re: Indiquer la validité d'une installation
Posté : 08 mars 2017 - 09:59
par raikyn
Merci beaucoup ça fonctionne grâce au accept_returncodes=[0, 1, 3010].
J'avais déjà vu cette fonction, mais ne l'ayant jamais utilisé j'avais fini par l'oublier...désolé du dérangement.
En ce qui concerne l'exit code 1 j'avoue que, dans la plupart des cas, il correspondait bien à un problème dans l’installation.
Mais pour ERDAS Foundation 2014, l'installation est complète malgré ce code.
Merci encore!
Re: Indiquer la validité d'une installation
Posté : 08 mars 2017 - 10:15
par sfonteneau
Le mieux est donc comme l'indiquait Floflobel d'utiliser install_exe_if_needed avec le accept_returncodes=[0, 1, 3010]
Ainsi si la uninstallkey n'est pas trouver après le lancement du run le paquet basculera en erreur (pour une bonne raison

)