Seite 1 von 1

Die Gültigkeit einer Installation angeben

Veröffentlicht: 6. März 2017 - 16:00 Uhr
von Raikyn
Hallo,

ich erstelle seit etwas über einem Jahr regelmäßig Softwarepakete und habe ein Problem:

Ich habe ein Paket zur Installation von Unternehmenssoftware (in diesem Fall ERDAS 2014) erstellt. Die Installation verläuft problemlos , aber WAPT erkennt die Installation als fehlerhaft, und ich weiß nicht, warum.

Daher versucht sich dieses Paket (obwohl korrekt konfiguriert) bei jeder Änderung auf den PCs, auf denen es installiert ist, neu zu installieren.

Meine Frage: Kann man WAPT (über die Konsole) mitteilen, dass ein Paket korrekt installiert ist? (Den Status „OK“ erzwingen?)

Ich möchte die Funktion „Paket vergessen“ nicht verwenden, da ich es bei Bedarf über die WAPT-Konsole sauber deinstallieren können möchte.

Falls diese Funktion nicht existiert, wäre es hilfreich, sie zu implementieren?

Betreff: Nachweis der Gültigkeit einer Installation

Veröffentlicht: 6. März 2017 - 16:30 Uhr
von Sfonteneau
Hallo,

um Ihnen helfen zu können, benötigen wir den Inhalt des Pakets (setup.py).

Wenn Sie es beispielsweise ausführen, kann es vorkommen, dass es nicht den Status 0 zurückgibt und Wapt die Installation daher als fehlgeschlagen betrachtet.

Um genau zu verstehen, was Wapt tut, teilen Sie uns bitte die Fehlermeldung mit:
https://www.wapt.fr/fr/doc/Utilisation/ ... et-general

Simon

Betreff: Nachweis der Gültigkeit einer Installation

Veröffentlicht: 7. März 2017 - 8:53 Uhr
von Raikyn
Hallo, anscheinend liegt ein Statusproblem vor; der Wert ist nicht 0.

Hier der Inhalt von 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')


Der Fehler:
CalledProcessError: Der Befehl '('"foundation\\Setup.exe" /s ERDASFoundation2014 /ni ACCEPT_EULA=1',)' hat den Exit-Status 1 zurückgegeben.

Ich möchte anmerken, dass ich keine Fehler erhalte, wenn ich diesen Befehl direkt in der Eingabeaufforderung des PCs ausführe.

Betreff: Nachweis der Gültigkeit einer Installation

Veröffentlicht: 7. März 2017 - 11:01 Uhr
von Floflobel
Guten Morgen,

Ich persönlich nutze die Funktion install_exe_if_needed: https://dev.tranquil.it/sphinxdocs/sour ... _if_needed

Sie benötigen zunächst den Deinstallationsschlüssel; hier finden Sie ihn:

Code: Alle auswählen

# 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\
Aufrichtig,

Betreff: Nachweis der Gültigkeit einer Installation

Veröffentlicht: 7. März 2017 - 18:01 Uhr
von Sfonteneau
Die Funktion `install_exe_if_needed` löst ebenfalls einen Fehler aus.

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

Sie akzeptiert zwar die Exit-Codes 0 und 3010, aber nicht den Rückgabecode 1.

Wenn Sie `install_exe_if_needed` im zweiten Durchlauf verwenden, sollte kein Fehler auftreten, da der `uninstallkey` gefunden wird!

Sie können optional den Exit-Code 1 hinzufügen, wie es für Wapt zulässig ist:

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

Aber ist Exit-Code 1 ein normaler Exit-Code?

Simon

Betreff: Nachweis der Gültigkeit einer Installation

Veröffentlicht: 8. März 2017 - 09:59 Uhr
von Raikyn
Vielen Dank, es funktioniert dank `accept_returncodes=[0, 1, 3010]`.
Ich kannte diese Funktion bereits, hatte sie aber vergessen, da ich sie noch nie benutzt hatte. Entschuldigung für die Umstände.

Was den Exit-Code 1 betrifft, muss ich zugeben, dass er in den meisten Fällen tatsächlich auf ein Installationsproblem hindeutete.
Bei ERDAS Foundation 2014 ist die Installation jedoch trotz dieses Codes erfolgreich.

Nochmals vielen Dank!

Betreff: Nachweis der Gültigkeit einer Installation

Veröffentlicht: 8. März 2017 - 10:15 Uhr
von Sfonteneau
Wie Floflobel bereits erwähnte, ist die beste Vorgehensweise die Verwendung von `install_exe_if_needed` mit `accept_returncodes=[0, 1, 3010]`.

Dadurch schlägt die Paketinstallation fehl, falls der Deinstallationsschlüssel nach der Ausführung nicht gefunden wird (was einen triftigen Grund darstellt ;-) ).