Pagina 1 di 2
Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 09:44
di benoitpatin
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
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 10:03
di agauvrit
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']))
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 14:17
di benoitpatin
Ottimo, la risposta è stata rapida!
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?
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 14:46
di sfontenau
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"?
SÌ
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
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 14:57
di benoitpatin
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?
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 15:17
di sfontenau
Non vedo errori nel tuo codice.
Sulla macchina su cui stai eseguendo il test.
Puoi eseguire un:
per vedere cosa succede
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 15:18
di agauvrit
Per visualizzare l'elenco dei software potenzialmente interessati:
Se il software non viene visualizzato, non verrà disinstallato; potrebbe essere necessario utilizzare solo "Foxit" come parola chiave di ricerca
Alessandro
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 15:22
di benoitpatin
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"
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 15:27
di agauvrit
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']))
Re: Pacchetto vuoto per disinstallare un'applicazione
Pubblicato: 22 marzo 2018 - 17:32
di benoitpatin
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?