Seite 1 von 2
Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 - 09:44 Uhr
von benoitpatin
Guten Morgen,
- Installierte WAPT-Version: 1.5.1.18 Community
- Linux Debian 9 Server-Betriebssystem
- Betriebssystem des Administrations-/Paketerstellungsrechners: Windows 10
Ich möchte ein quellcodefreies Paket erstellen, das mit nur einem Befehl ein Programm von meinen Computern deinstallieren kann.
Ich besitze den Originalquellcode der Anwendung nicht.
Mit dem Befehl wapt-get list-registry software_name kann ich die Uninstallstring und den Uninstallkey auf einem Zielrechner abrufen.
Also habe ich dummerweise ein leeres Paket mit den gegebenen Informationen erstellt:
Code: Alle auswählen
# -*- 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"')
Aber es scheint nicht richtig zu funktionieren. Da dies mein zweites Paket ist, denke ich, dass mir ein paar Dinge fehlen, um es zum Laufen zu bringen.
Gibt es jemanden, der mir helfen kann?
DANKE
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 - 10:03 Uhr
von agauvrit
Hallo Benoît,
Die Funktion
deinstallieren Dies ermöglicht die Deinstallation von Software, die mit WAPT bereitgestellt wurde. Wenn Sie Software direkt deinstallieren möchten, müssen Sie diesen Code in die Funktion einfügen
installieren aus der Verpackung.
Wenn Sie eine Software in allen möglichen Versionen deinstallieren möchten, verwenden Sie am besten eine Funktion wie diese:
Code: Alle auswählen
# -*- 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']))
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 – 14:17 Uhr
von benoitpatin
Großartig, die schnelle Antwort!
Ich benötige jedoch einige Erläuterungen...
Code: Alle auswählen
def install():
for soft in installed_softwares('Foxit Reader'):
if Version(soft['version']) < Version('18'):
run(WAPT.uninstall_cmd(soft['key']))
Das Wort „Version“ zwischen einfachen Anführungszeichen und eckigen Klammern sollte der Version in meiner Systemsteuerung unter „Programme hinzufügen/entfernen“ entsprechen?
Worauf bezieht sich das Wort „key“ zwischen einfachen Anführungszeichen und eckigen Klammern? Auf den Deinstallationsschlüssel oder auf die Deinstallationszeichenfolge?
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 – 14:46 Uhr
von Sfonteneau
benoitpatin schrieb: ↑22. März 2018 - 14:17 Uhr
Bezieht sich das Wort „Version“ zwischen einem einfachen Anführungszeichen und einer Klammer auf die Version in meiner Systemsteuerung unter „Programme hinzufügen/entfernen“?
Ja
benoitpatin schrieb: ↑22. März 2018 - 14:17 Uhr
Worauf bezieht sich das Wort „key“ zwischen einem einfachen Anführungszeichen und einer eckigen Klammer? Auf den Deinstallationsschlüssel oder die Deinstallationszeichenfolge?
Das Wort „key“ sollte nicht ersetzt werden; wir werden den Wert „key“ aus dem aktuell getesteten `uninstallkey` abrufen
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 - 14:57 Uhr
von benoitpatin
Okay, super, hier ist die minimale setup.py-Datei:
Code: Alle auswählen
# -*- 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']))
Ich kompiliere, lade hoch und starte das Paket auf meinem Rechner, aber nichts passiert.
Ich habe nirgends Fehler gemacht. Habe ich etwas übersehen?
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 – 15:17 Uhr
von Sfonteneau
Ich sehe keine Fehler in Ihrem Code.
Auf dem Rechner, an dem Sie testen.
Können Sie Folgendes ausführen:
um zu sehen, was passiert
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 - 15:18 Uhr
von agauvrit
Um die Liste der möglicherweise betroffenen Software anzuzeigen:
Falls die Software nicht angezeigt wird, wird sie nicht deinstalliert; gegebenenfalls müssen Sie nur „Foxit“ als Suchbegriff verwenden
Alexander
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 – 15:22 Uhr
von benoitpatin
Code: Alle auswählen
UninstallKey Software Version Uninstallstring
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Foxit Reader_is1 Foxit Reader 8.2.1.6871 "C:\Program Files (x86)\Foxit Software\Foxit Reader\unins000.exe"
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 – 15:27 Uhr
von agauvrit
Die zurückgegebene Version entspricht der im Versionstest vorgegebenen Version (8.2.1.6871), daher wird sie nicht deinstalliert.
Um es „mit roher Gewalt“ anzugehen, können Sie die vollständige Deinstallation aller möglichen Versionen wie folgt befehlen:
Code: Alle auswählen
# -*- 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']))
Betreff: Leeres Paket zum Deinstallieren einer Anwendung
Veröffentlicht: 22. März 2018 - 17:32 Uhr
von benoitpatin
Es funktioniert nicht und ich sehe nirgends eine Fehlermeldung (vielleicht gibt es aber auch gar keine... ein Fehler!).
Wie kann ich das Problem beheben?