Hallo,
ich benötige eine Vorlage für folgende Schritte:
Prüfen, ob die Software auf dem Client-Rechner installiert ist; falls ja, deinstallieren und anschließend neu installieren; falls nein, installieren.
Vielen Dank im Voraus.
setup.py-Skriptvorlage
Forumregeln
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
Community-Forumregeln
* Englischer Support auf www.reddit.com/r/wapt
* Französischer Community-Support ist in diesem Forum verfügbar.
* Bitte kennzeichnen Sie gelöste Themen mit [GELÖST].
* Bitte bearbeiten Sie keine Themen, die mit [GELÖST] markiert sind. Erstellen Sie stattdessen ein neues Thema und verweisen Sie auf das alte.
* Geben Sie die installierte WAPT-Version, die vollständige Versionsnummer und die Build-Nummer (2.2.1.11957 / 2.2.2.12337 / usw.) sowie die Enterprise-/Discovery-Edition an.
* Versionen 1.8.2 und älter werden nicht mehr unterstützt. Fragen zu Version 1.8.2 werden nur beantwortet, wenn sie sich auf ein Upgrade auf eine unterstützte Version (2.1, 2.2 usw.) beziehen.
* Geben Sie das Server-Betriebssystem (Linux/Windows) und die Version (Debian Buster/Bullseye – CentOS 7 – Windows Server 2012/2016/2019) an.
* Geben Sie gegebenenfalls das Betriebssystem des Administrations-/Paketerstellungsrechners und des Rechners mit dem problematischen Agenten an (Windows 7/10/11/Debian 11/etc.).
* Vermeiden Sie es, mehrere Fragen in einem Thema zu stellen, da diese sonst möglicherweise ignoriert werden. Falls mehrere Themen relevant sind, erstellen Sie bitte separate Themen, vorzugsweise nacheinander und nicht gleichzeitig (d. h. vermeiden Sie Spam im Forum).
* Fügen Sie Code-Snippets, Screenshots und andere Bilder direkt in Ihren Beitrag ein. Links zu Pastebin, Bitly und anderen Drittanbieterseiten werden systematisch entfernt.
* Wie in jedem Community-Forum erfolgt die Unterstützung freiwillig durch die Mitglieder. Für kommerziellen Support kontaktieren Sie bitte den Vertrieb von Tranquil IT unter +44 2 40 97 57 55.
- Sfonteneau
- WAPT-Experte
- Nachrichten: 2322
- Registriert: 10. Juli 2014 - 23:52 Uhr
- Kontakt:
!!! Kompatibel nur ab Version 1.3.5, glaube ich !!!
Nur zu installieren, wenn die Software nicht vorhanden oder die Version älter ist:
Exe:
MSI (einfacher):
In den meisten Fällen ist eine vorherige Deinstallation nicht erforderlich, aber nicht immer.
So starten Sie eine Deinstallation:
Diese Methode kann jedoch manchmal Probleme verursachen.
In unserem Beispiel suchen wir tatsächlich nach einer Software mit dem Namen Scribus.
Aber wenn in unserer Software ein Programm "Sribus plugin extra" heißt
Nun, dieser hier wird das auch durchmachen.
In diesem Fall muss die setup.py-Datei genauer spezifiziert werden
Simon
Nur zu installieren, wenn die Software nicht vorhanden oder die Version älter ist:
Exe:
Code: Alle auswählen
def install ():
install_exe_if_needed('vlc-2.2.2-win32.exe',silentflags='/S --no-qt-privacy-ask --no-qt-updates-notif',key='VLC media player',min_version='2.2.2',killbefore=['vlc.exe'],accept_returncodes=[0],timeout=300)
Code: Alle auswählen
def install ():
install_msi_if_needed('install_flash_player_21_active_x.msi',killbefore=['iexplore.exe'])
So starten Sie eine Deinstallation:
Code: Alle auswählen
softname = 'Scribus'
versionsoft = '15.007.20033'
check_installed_soft = installed_softwares(softname)
if check_installed_soft:
for uninstall in check_installed_soft:
if Version(uninstall['version']) < Version(versionsoft):
key=uninstall['key']
if installed_softwares(uninstallkey=key):
cmd = WAPT.uninstall_cmd(uninstall['key'])
run(cmd)
In unserem Beispiel suchen wir tatsächlich nach einer Software mit dem Namen Scribus.
Aber wenn in unserer Software ein Programm "Sribus plugin extra" heißt
Nun, dieser hier wird das auch durchmachen.
In diesem Fall muss die setup.py-Datei genauer spezifiziert werden
Simon
Hier ist mein Skript zur Installation der Visual Studio 2005 Tools for Office Second Edition Runtime (vstor2005.exe):
Der Code scheint nur dann zu funktionieren, wenn vstor2005 nicht installiert ist; wenn vstor2005 jedoch bereits installiert ist, erscheint folgende Fehlermeldung:
Code: Alle auswählen
# -*- coding: utf-8 -*-
from setuphelpers import *
uninstallkey = ["{388E4B09-3E71-4649-8921-F44A3A2954A7}"]
uninstallstring = ['msiexec /qb /uninstall {388E4B09-3E71-4649-8921-F44A3A2954A7}']
def install ():
install_exe_if_needed('vstor2005.exe', '/q',accept_returncodes=[0],timeout=300)
def uninstall():
softname = 'Visual Studio 2005 Tools pour Office Second Edition Runtime'
versionsoft = '8.0.50727.940'
check_installed_soft = installed_softwares(softname)
if check_installed_soft:
for uninstall in check_installed_soft:
if uninstall['version'] == versionsoft:
cmd = 'msiexec /qb /uninstall {388E4B09-3E71-4649-8921-F44A3A2954A7}'
run(cmd)
Code: Alle auswählen
C:\Windows\system32>wapt-get install C:\Users\x\Desktop\Nuxeo\enm
-vstor2005
Installing WAPT file C:\Users\x\Desktop\Nuxeo\enm-vstor2005
2016-05-03 10:13:38,529 CRITICAL Fatal error in install script: EWaptSetupExcept
ion: Fatal error : Setup vstor2005.exe has been and uninstall key None found but
version is not good:
Traceback (most recent call last):
File "C:\wapt\common.py", line 3178, in install_wapt
exitstatus = setup.install()
File "C:\Users\x\Desktop\Nuxeo\enm-vstor2005\setup.py", line 8,
in install
install_exe_if_needed('vstor2005.exe','/q',accept_returncodes=[0],timeout=30
0)
File "C:\wapt\setuphelpers.py", line 3416, in install_exe_if_needed
error('Setup %s has been and uninstall key %s found but version is not good'
% (exe,key))
File "C:\wapt\setuphelpers.py", line 3524, in error
raise EWaptSetupException(u'Fatal error : %s' % reason)
EWaptSetupException: Fatal error : Setup vstor2005.exe has been and uninstall ke
y None found but version is not good
FATAL ERROR : EWaptSetupException: Fatal error : Setup vstor2005.exe has been an
d uninstall key None found but version is not good
Zuletzt bearbeitet von so37 am 3. Mai 2016 um 10:16 Uhr, 1 Mal bearbeitet.
Wenn ich dieses Paket deinstalliere, sollte die Deinstallation mit folgendem Befehl erfolgen:
Code: Alle auswählen
msiexec /qb /uninstall {388E4B09-3E71-4649-8921-F44A3A2954A7}- Sfonteneau
- WAPT-Experte
- Nachrichten: 2322
- Registriert: 10. Juli 2014 - 23:52 Uhr
- Kontakt:
Ein Problem jagt das nächste …
Wenn keine Mindestversionsnummer angegeben ist (wie in Ihrem Fall), liest `install_exe_if_needed` die Version aus den Eigenschaften der ausführbaren Datei (sofern diese korrekt formatiert ist). Sind Sie sicher, dass Sie keine Mindestversionsnummer angeben möchten?
Außerdem fehlt in Ihrem Befehl das Argument `key`.
Die Deinstallation behandeln wir später.
Wenn keine Mindestversionsnummer angegeben ist (wie in Ihrem Fall), liest `install_exe_if_needed` die Version aus den Eigenschaften der ausführbaren Datei (sofern diese korrekt formatiert ist). Sind Sie sicher, dass Sie keine Mindestversionsnummer angeben möchten?
Außerdem fehlt in Ihrem Befehl das Argument `key`.
Die Deinstallation behandeln wir später.
Hier die Änderungen bezüglich def install:
Code: Alle auswählen
def install ():
install_exe_if_needed('vstor2005.exe','/q',min_version='8.0.50727.940',key='Visual Studio 2005 Tools pour Office Second Edition Runtime',accept_returncodes=[0],timeout=300) - Sfonteneau
- WAPT-Experte
- Nachrichten: 2322
- Registriert: 10. Juli 2014 - 23:52 Uhr
- Kontakt:
In setuphelpers.py (https://github.com/tranquilit/WAPT/comm ... 84de4f0488) wurde ein kleiner Fehler behoben. Möglicherweise rührte dein Problem daher, Simon.
Hier ist mein aktuelles Modell:
Gibt es eine bessere Option? Ist sie ausreichend optimiert?
Code: Alle auswählen
# -*- coding: utf-8 -*-
import subprocess
from setuphelpers import *
import os
import time
import platform
uninstallkey = []
uninstallstring = ['msiexec /qb /uninstall {B0E8A140-26FA-43C7-AA0F-03691E6DBB02}']
def install():
global uninstallkey
from common import Wapt
softname = 'Nuxeo MSIE Browser Extension'
versionsoft = '2.1.3'
check_installed = installed_softwares(softname)
# si cette liste globale n est pas vide, on check chaque logiciel
if check_installed:
# boucle pour chaque logiciel trouvée
for uninstall in check_installed:
cmd = "msiexec /qb /uninstall {B0E8A140-26FA-43C7-AA0F-03691E6DBB02}"
run(cmd)
if iswin64():
killalltasks('iexplore.exe')
run("Nuxeo-MSIEBrowserExtension.msi /quiet /norestart")
else:
killalltasks('iexplore.exe')
print run("Nuxeo-MSIEBrowserExtension.msi /quiet /norestart")
def uninstall():
softname = 'Nuxeo MSIE Browser Extension'
versionsoft = '2.1.3'
check_installed = installed_softwares(softname)
# si cette liste globale n est pas vide, on check chaque logiciel
if check_installed:
# boucle pour chaque logiciel trouvée
for uninstall in check_installed:
cmd = "msiexec /qb /uninstall {B0E8A140-26FA-43C7-AA0F-03691E6DBB02}"
run(cmd)
Gibt es eine bessere Option? Ist sie ausreichend optimiert?
Nachdem ich dem WAPT-Dienst Administratorrechte zugewiesen hatte, verbesserte sich die Situation; wenn ich jedoch das oben kopierte Skript ausführe, erhalte ich die folgende Fehlermeldung:
Code: Alle auswählen
"id" "description" "summary" "start_date" "logs"
10 Installation of test-nuxeobrowser (=2.1.3-6) (task #10) Exception: Error during install of test-nuxeobrowser (=2.1.3-6): errors in packages test-nuxeobrowser 2016-05-11T13:51:41.573000 Installing test-nuxeobrowser
Exception: Error during install of test-nuxeobrowser (=2.1.3-6): errors in packages test-nuxeobrowser
Traceback (most recent call last):
File "C:\wapt\waptservice\waptservice.py", line 2063, in run
self.running_task.run()
File "C:\wapt\waptservice\waptservice.py", line 1323, in pwrapper
return func(*arg, **kwargs)
File "C:\wapt\waptservice\waptservice.py", line 1383, in run
self._run()
File "C:\wapt\waptservice\waptservice.py", line 1807, in _run
','.join([ p[1].package for p in self.result['errors']]),
Exception: Error during install of test-nuxeobrowser (=2.1.3-6): errors in packages test-nuxeobrowser
