[GELÖST] Erkennung einer neuen Version einer ausführbaren Datei (upgrade_package)

Fragen zu WAPT-Paketen / Anfragen und Hilfe bezüglich WAPT-Paketen.
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.
Gesperrt
alain17
Nachrichten: 24
Anmeldung: 17. Juni 2022 - 07:32 Uhr

9. September 2022 – 8:14 Uhr

Guten Morgen,

Ich betreibe einen WAPT Enterprise 2.2.2.12388 Server unter Ubuntu.

Meine Frage betrifft die Funktion `upgrade_package` in WAPT-Paketen. Mir ist bewusst, dass man mit dieser Funktion festlegen kann, wie das Paket aktualisiert werden soll; allerdings verstehe ich nicht, wie die Versionserkennung in der Konsole funktioniert.

Ich habe beispielsweise das tis-powertoys-Paket genommen und modifiziert, sodass ich aktuell zwei Versionen habe. Die Originalversion (0.61.1-7) zeigt korrekt an, dass ein Update vom Herausgeber (dem PowerToys-Git-Repository) verfügbar ist, indem der Text rot dargestellt wird. Meine leicht modifizierte Version (0.61.1-8) hingegen meldet kein Update, obwohl es sich um dieselbe ausführbare Datei handelt.
powertoys-upgrade.png
powertoys-upgrade.png (13,63 KB) 3500 Mal angesehen
Können Sie mir erklären, wie dieser Versionserkennungsmechanismus funktioniert und wie ich ihn so konfigurieren kann, dass er auf die Veröffentlichung einer neuen Version der ausführbaren Datei reagiert?

Ich glaube nicht, dass ich den Code des Upgrade-Pakets verändert habe, aber sicherheitshalber füge ich ihn hier ein:

Code: Alle auswählen

def update_package():
    # Declaring local variables
    result = False
    proxies = get_proxies()
    architecture = control.architecture
    if not proxies:
        proxies = get_proxies_from_wapt_console()
    app_name = control.name
    git_repo = "microsoft/PowerToys"
    url_api = "https://api.github.com/repos/%s/releases/latest" % git_repo
    bin_name_sub = "PowerToysSetup%s.exe"
    # Getting latest version information from official sources
    print("API used is: %s" % url_api)
    json_load = json.loads(wgets(url_api, proxies=proxies))

    for download in json_load["assets"]:
        if bin_contains in download["name"] and architecture in download["name"]:
            url_dl = download["browser_download_url"]
            version = json_load["tag_name"].replace("v", "")
            latest_bin = download["name"]
            break

    print("Latest %s version is: %s" % (app_name, version))
    print("Download URL is: %s" % url_dl)

    # Downloading latest binaries
    if not isfile(latest_bin):
        print("Downloading: %s" % latest_bin)
        wget(url_dl, latest_bin, proxies=proxies)

    # Changing version of the package
    if Version(version) > control.get_software_version():
        print("Software version updated from: %s to: %s" % (control.get_software_version(), Version(version)))
        result = True
    control.version = "%s-%s" % (Version(version), control.version.split("-", 1)[-1])
    # control.set_software_version(Version(version))
    control.save_control_to_wapt()

    # Deleting outdated binaries
    remove_outdated_binaries(version)

    # Validating update-package-sources
    return result
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1953
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

9. September 2022 - 11:25 Uhr

Hallo,

der Vergleich basiert auf den im Konsolenfenster ausgewählten Paketen (standardmäßig https://store.wapt.fr). Informationen aus dem Update-Paket werden nicht berücksichtigt. Für Vergleiche mit dem Quell-Git-Repository können Sie die entsprechenden Informationen unter https://luti.tranquil.it/ . Diese werden derzeit jedoch nicht in der Konsole angezeigt.

Falls eine neue Version des Pakets auf der Website des Herausgebers verfügbar ist, befindet sie sich möglicherweise bereits im wapt-testing-Repository ( https://wapt.tranquil.it/wapt-testing/ ). Bitte prüfen Sie dies.

Viele Grüße,

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
alain17
Nachrichten: 24
Anmeldung: 17. Juni 2022 - 07:32 Uhr

9. September 2022 – 14:00 Uhr

Hallo,

vielen Dank für Ihre Antwort. Es ist schade, dass dies noch nicht möglich ist. Könnte man das in einer zukünftigen Version implementieren? Zum Beispiel über eine Funktion, die im Paket implementiert werden könnte?

Mit freundlichen Grüßen
Benutzeravatar
dcardon
WAPT-Experte
Nachrichten: 1953
Anmeldung: 18. Juni 2014 - 09:58 Uhr
Ort: Saint Sébastien sur Loire
Kontakt:

9. September 2022 – 16:10 Uhr

Für die Versionsabfrage von Software ist immer ein kleiner Umweg nötig, selbst bei Websites mit JSON-APIs (die sich nicht an ihr eigenes Format halten), und regelmäßige Updates sind erforderlich. Viele Softwareprogramme bieten nicht einmal eine einheitliche Versionsnummer auf ihrer Website an, sodass man die Änderungen komplett überwachen muss.

Die beste Lösung wäre die Integration der Repository-Schnittstelle in LUTI. Wenn das Paket aber noch nicht verfügbar ist (weil der Entwickler bei seiner Website oder Software besonders kreativ war), hilft das auch nicht viel. Normalerweise wird das Paket, sobald die neue Software in LUTI gelistet ist, erstellt, getestet, validiert und dann auf wapt-testing hochgeladen, sodass es bereits verfügbar ist.

Viele Grüße,

Denis
Denis Cardon – Tranquil IT
Teilen Sie Ihre Erfahrungen auf WAPT! Senden Sie uns Ihre Blog- und Artikel-URLs im „Ihre Meinung des Forums, und wir werden sie auf der WAPT-
Gesperrt