Indicare la validità di un'installazione

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
raikyn
Messaggi: 8
Registrazione: 2 maggio 2016 - 15:36

6 marzo 2017 - 16:00

Salve,

creo regolarmente pacchetti da poco più di un anno e sto riscontrando un problema:

ho creato un pacchetto per installare un software aziendale (ERDAS 2014 in questo caso). L'installazione avviene senza problemi , ma WAPT la considera errata e non ho idea del perché.

Di conseguenza, questo pacchetto (nonostante sia configurato correttamente) tenterà di reinstallarsi ogni volta che viene apportata una modifica sui PC su cui è installato.

La mia domanda è: è possibile indicare a WAPT (tramite la console) che un pacchetto è stato installato correttamente? (Forzare lo stato OK?).

Non voglio usare la funzione "Dimentica pacchetto", perché vorrei poterlo disinstallare correttamente tramite la console di WAPT quando necessario.

Se questa funzionalità non esiste, forse sarebbe possibile implementarla?
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

6 marzo 2017 - 16:30

Ciao,

per poterti aiutare abbiamo bisogno del contenuto del pacchetto (setup.py).

Se, ad esempio, lo esegui, è possibile che non restituisca uno stato pari a 0 e quindi Wapt consideri l'installazione fallita.

Per sapere esattamente cosa sta facendo Wapt, devi comunicarci l'errore:
https://www.wapt.fr/fr/doc/Utilisation/ ... et-general

Simon
raikyn
Messaggi: 8
Registrazione: 2 maggio 2016 - 15:36

7 marzo 2017 - 08:53

Ciao, a quanto pare è un problema di "stato"; non è a 0.

Ecco il contenuto di 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'errore:
CalledProcessError: il comando '('"foundation\\Setup.exe" /s ERDASFoundation2014 /ni ACCEPT_EULA=1',)' ha restituito uno stato di uscita diverso da zero (1).

Devo precisare che se eseguo questo comando direttamente dal prompt dei comandi sul PC, non ricevo alcun errore.
Floflobel
Messaggi: 135
Registrazione: 15 ottobre 2015 - 17:32

7 marzo 2017 - 11:01

Buongiorno,

Personalmente, utilizzo la funzione install_exe_if_needed: https://dev.tranquil.it/sphinxdocs/sour ... _se_necessario

Per prima cosa ti servirà uninstall_key; ecco dove puoi trovarlo:

Codice: Seleziona tutto

# 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\
Sinceramente,
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

7 marzo 2017 - 18:01

Anche la funzione `install_exe_if_needed` genererà un errore.

https://dev.tranquil.it/sphinxdocs/sour ... _if_needed

Infatti, accetta i codici di uscita 0 e 3010, ma il codice di ritorno 1 non è tra questi.

Se si utilizza `install_exe_if_needed` al secondo passaggio, non dovrebbe generare un errore perché la `uninstallkey` verrà trovata!

È possibile, se lo si desidera, aggiungere il codice di uscita 1, come è consentito per Wapt:

`run('"install.exe" /s',accept_returncodes=[0, 1, 3010])`.

Ma il codice di uscita 1 è un codice di uscita normale?

Simon
raikyn
Messaggi: 8
Registrazione: 2 maggio 2016 - 15:36

8 marzo 2017 - 09:59

Grazie mille, funziona grazie a accept_returncodes=[0, 1, 3010].
Avevo già visto questa funzione, ma non avendola mai usata, me ne ero dimenticato... mi scuso per il disturbo.

Per quanto riguarda il codice di uscita 1, ammetto che, nella maggior parte dei casi, corrispondeva effettivamente a un problema durante l'installazione.
Ma per ERDAS Foundation 2014, l'installazione si completa nonostante questo codice.

Grazie ancora!
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

8 marzo 2017 - 10:15

Come indicato da Floflobel, l'approccio migliore è utilizzare install_exe_if_needed con accept_returncodes=[0, 1, 3010].

In questo modo, se la chiave di disinstallazione non viene trovata dopo l'esecuzione, il pacchetto fallirà (per una buona ragione ;-) ).
Bloccato