Pacchetto vuoto per disinstallare un'applicazione

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
Benoit Patin
Messaggi: 37
Iscrizioni: 21 febbraio 2018 - ore 17:05

22 marzo 2018 - 09:44

Buongiorno,

- Versione WAPT installata: 1.5.1.18 Community
- Sistema operativo server Linux Debian 9
- Sistema operativo della macchina di amministrazione/creazione pacchetti: Windows 10

Vorrei creare un pacchetto senza codice sorgente con un solo comando per disinstallare un programma sui miei computer.

Non dispongo del codice sorgente originale dell'applicazione.
Utilizzando il comando wapt-get list-registry software_name sono in grado di recuperare la Uninstallstring e la uninstallkey su una macchina di destinazione.

Quindi ho stupidamente creato un pacchetto vuoto con le informazioni fornite:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['Foxit Reader_is1']


def uninstall():
    print('uninstalling Foxit Reader')
    run(r'"C:\Program Files (x86)\Foxit Software\Foxit Reader\unins000.exe"')
Ma non sembra funzionare correttamente. Dato che questo è il mio secondo pacchetto, credo che manchino un paio di cose per farlo funzionare correttamente.
C'è qualcuno che può aiutarmi?

GRAZIE
Avatar utente
agauvrit
Esperto WAPT
Messaggi: 238
Registrazione: 17 nov 2016 - 10:25
Posizione: Nantes
Contatto:

22 marzo 2018 - 10:03

Ciao Benoît,

La funzione disinstallare Ciò consente di disinstallare il software distribuito con WAPT. Se si desidera disinstallare il software direttamente, è necessario scrivere questo codice nella funzione installare dal pacchetto.

Se si desidera disinstallare il software in tutte le versioni possibili, è meglio utilizzare una funzione come questa:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = []

def install():
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('18'):
                run(WAPT.uninstall_cmd(soft['key']))
Benoit Patin
Messaggi: 37
Iscrizioni: 21 febbraio 2018 - ore 17:05

22 marzo 2018 - 14:17

Ottimo, la risposta è stata rapida! :D

Tuttavia, ho bisogno di alcuni chiarimenti...

Codice: Seleziona tutto

def install():
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('18'):
                run(WAPT.uninstall_cmd(soft['key']))
La parola "versione" tra virgolette singole e parentesi quadre dovrebbe corrispondere alla versione presente in Installazione applicazioni?
A cosa dovrebbe corrispondere la parola "key" tra virgolette singole e parentesi quadra? A uninstallkey o a uninstallstring?
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

22 marzo 2018 - 14:46

benoitpatin ha scritto: 22 marzo 2018 - 14:17 La parola "versione" tra virgolette singole e parentesi quadre si riferisce alla versione presente in "Installazione applicazioni"?

benoitpatin ha scritto: 22 marzo 2018 - 14:17 A cosa si riferisce la parola "key" tra virgolette singole e parentesi quadre? Alla chiave di disinstallazione o alla stringa di disinstallazione?
La parola 'key' non deve essere sostituita; recupereremo il valore 'key' da `uninstallkey` attualmente in fase di test
Benoit Patin
Messaggi: 37
Iscrizioni: 21 febbraio 2018 - ore 17:05

22 marzo 2018 - 14:57

Ok, ottimo, ecco il mio setup.py:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['Foxit Reader_is1']


def install():
    print('uninstalling Foxit Reader')
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('8.2.1.6871'):
            run(WAPT.uninstall_cmd(soft['key']))
Compilo, carico, lancio il pacchetto sulla mia macchina, ma non succede nulla.
Non ho commesso errori da nessuna parte. Mi è sfuggito qualcosa?
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

22 marzo 2018 - 15:17

Non vedo errori nel tuo codice.

Sulla macchina su cui stai eseguendo il test.

Puoi eseguire un:

Codice: Seleziona tutto

wapt-get list-registry Foxit


per vedere cosa succede
Avatar utente
agauvrit
Esperto WAPT
Messaggi: 238
Registrazione: 17 nov 2016 - 10:25
Posizione: Nantes
Contatto:

22 marzo 2018 - 15:18

Per visualizzare l'elenco dei software potenzialmente interessati:

Codice: Seleziona tutto

wapt-get list-registry Foxit Reader
Se il software non viene visualizzato, non verrà disinstallato; potrebbe essere necessario utilizzare solo "Foxit" come parola chiave di ricerca

Alessandro
Benoit Patin
Messaggi: 37
Iscrizioni: 21 febbraio 2018 - ore 17:05

22 marzo 2018 - 15:22

Codice: Seleziona tutto

UninstallKey                           Software                                                              Version             Uninstallstring                        
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Foxit Reader_is1                       Foxit Reader                                                          8.2.1.6871          "C:\Program Files (x86)\Foxit Software\Foxit Reader\unins000.exe"
Avatar utente
agauvrit
Esperto WAPT
Messaggi: 238
Registrazione: 17 nov 2016 - 10:25
Posizione: Nantes
Contatto:

22 marzo 2018 - 15:27

la versione restituita è uguale alla versione imposta nel test della versione (8.2.1.6871), quindi non viene disinstallata.

Per essere più "brutali", puoi scrivere la disinstallazione completa di tutte le versioni possibili in questo modo:

Codice: Seleziona tutto

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['Foxit Reader_is1']


def install():
    print('uninstalling Foxit Reader')
    for soft in installed_softwares('Foxit Reader'):
            run(WAPT.uninstall_cmd(soft['key']))
Benoit Patin
Messaggi: 37
Iscrizioni: 21 febbraio 2018 - ore 17:05

22 marzo 2018 - 17:32

Non funziona e non vedo alcun messaggio di errore da nessuna parte (e allo stesso tempo, forse non c'è... un errore!).
Come posso risolvere il problema?
Bloccato