Seite 1 von 1

[GELÖST] Installation der vorherigen Version eines Pakets

Veröffentlicht: 19. März 2025 - 11:56 Uhr
von VincentUCA
WAPT Version 2.6

Guten Morgen,
Entschuldigung, falls ein ähnliches Thema bereits eröffnet wurde, ich konnte es nicht finden.
Ich entwickle gerade ein Softwarepaket, dessen Installationsprogramm die alte Version nicht entfernt. Deshalb habe ich einen Codeabschnitt hinzugefügt, der dies verhindert. Für Testzwecke möchte ich jedoch die Möglichkeit haben, die alte Version wiederherzustellen. Ich glaube, ich habe das schon einmal gemacht, aber ich habe mir keine Notizen gemacht und weiß nicht mehr, wie es geht.
Ich habe in der Dokumentation einen Abschnitt gefunden, der Folgendes besagt:
Jeder Befehl, der einen Paketnamen als Parameter benötigt, kann auch die eindeutige package_uuid des Pakets als Parameter verwenden (z. B. `wapt-get install`, `wapt-get forget`). Mithilfe einer GUID lässt sich ein Paket eindeutig angeben, ohne dass Unklarheiten bezüglich Architektur oder Version bestehen. Die package_uuid wird in der Ausgabe von `wapt-get list` und `wapt-get search` angezeigt. Beispiel:
Also habe ich ein

Code: Alle auswählen

wapt-get search monpaquet
um die Paket-ID in der Version abzurufen, die mich interessiert.
Aber wenn ich dann den Befehl ausführe

Code: Alle auswählen

wapt-get install c65ecfc2-ed87-428a-abc7-1646497ee71e
Ich erhalte folgende Fehlermeldung:
Konfigurationsdatei: C:\Program Files (x86)\wapt\wapt-get.ini
Installation mit WAPT-Paketen c65ecfc2-ed87-428a-abc7-1646497ee71e

Ergebnis:
Kritisch:
=== Nicht verfügbare Pakete ===
c65ecfc2-ed87-428a-abc7-1646497ee71e [x64_fr_PROD,DEV,PREPROD]
Wo mache ich einen Fehler?
Vielen Dank im Voraus für Ihre Antwort.
Aufrichtig.
Vincent

Betreff: Installation der vorherigen Version eines Pakets

Veröffentlicht: 20. März 2025 - 09:42 Uhr
von dcardon
Hallo Vincent,

Sie können die Installation einer bestimmten Version mit folgender Syntax erzwingen:

Code: Alle auswählen

wapt-get install "tis-monpaquet(=2.5.3)"
Die Versionsfestlegung wird jedoch nicht im Agenten gespeichert, daher wird das Paket beim nächsten wapt-get-Upgrade aktualisiert.

Aufrichtig,

Denis

Betreff: Installation der vorherigen Version eines Pakets

Veröffentlicht: 20. März 2025 - 19:46 Uhr
von vcardon
Hallo, um auf Denis' Kommentar zurückzukommen: Wenn Sie eine Softwareversion ohne automatische Updates benötigen, duplizieren Sie die gewünschte Version und benennen Sie das Paket entsprechend der Softwareversion um.

Beispiel: Das Paket „tis-firefox“ für Version 136.0.2 würde dann „tis-firefox-pinned-136.0.2“.

Betreff: Installation der vorherigen Version eines Pakets

Veröffentlicht: 21. März 2025 - 11:34 Uhr
von VincentUCA
Hallo zusammen,
Vielen Dank für Ihren wertvollen Hinweis. Ich konnte die Installation einer älteren Version meines Pakets erfolgreich testen. Der von WAPT hinzugefügte Teil darf jedoch nicht aus der Versionsnummer entfernt werden, sonst funktioniert es nicht. Um beim vorherigen Beispiel zu bleiben:

Code: Alle auswählen

wapt-get install "tis-monpaquet(=2.5.3-2)"
Ich schlage vor, die Installation über die UUID eines Pakets aus der Dokumentation zu entfernen, falls diese Methode nicht mehr funktioniert, und stattdessen diese Methode über die Versionsfestlegung hinzuzufügen, die ich bisher nirgendwo anders finden konnte.

Um ehrlich zu sein, entwickle ich gerade ein Paket für die Chimera-Software. Im tranquil.it-Repository existiert bereits ein Paket mit dem Code zum Deinstallieren älterer Versionen, aber mir sind zwei Dinge aufgefallen.

Das erste Problem besteht darin, dass die Versionsnummer der Chimera-Software nicht in der Windows-Registrierung gespeichert ist. Daher lautet der Paketcode wie folgt:

Code: Alle auswählen

for to_uninstall in installed_softwares("UCSF Chimera"):
        if Version(to_uninstall["version"]) < Version(last_version):
Prüfen Sie stets den Zustand:

Code: Alle auswählen

if 0.0.0.0 < N° de la dernière version:
Daher wird es unabhängig von der installierten Version deinstalliert.

Das zweite Problem besteht darin, dass die Funktion `installed_softwares("UCSF Chimera")` auch den Registrierungsschlüssel ChimeraX abruft, dem ebenfalls eine Versionsnummer fehlt. Dies führt dazu, dass ChimeraX während der Chimera-Installation deinstalliert wird.

Ich habe festgestellt, dass im Registrierungsschlüssel für die Chimera-Deinstallation die Versionsnummer im Schlüssel „DisplayName“ angegeben war. Daher habe ich den Code wie folgt geändert:

Code: Alle auswählen

for to_uninstall in installed_softwares("UCSF Chimera"):
        to_uninstall_version = to_uninstall["name"].split()[-1]
        if Version(to_uninstall_version) < Version(last_version):
            print(f"Removing: {to_uninstall['name']} ({to_uninstall_version})")
Die getesteten Bedingungen lauten:

Code: Alle auswählen

if 1.18.0.0 <1.19.0.0:
Und

Code: Alle auswählen

if "ChimeraX"<1.19.0.0:
Da ChimeraX die Versionsnummer nicht im "DisplayName" enthält, scheint diese Bedingung "False" zurückzugeben.

Es ist zwar nicht die eleganteste Lösung, aber sie funktioniert. Die neueste Version von Chimera wird bei einem Paketupdate nicht deinstalliert und neu installiert, ohne dass sich die Softwareversion ändert. Auch ChimeraX wird nicht deinstalliert, sodass beide Softwarepakete parallel existieren können. Zugegeben, das ist etwas kleinlich :Hoppla: Da ich nun die Funktion zum Entfernen der Desktopverknüpfung hinzugefügt habe, werde ich den Code dieses Pakets wohl nicht mehr anfassen. Normalerweise macht es wenig Sinn, Chimera und ChimeraX auf demselben Rechner installiert zu haben, aber anscheinend gibt es in ChimeraX Funktionen, die aus Chimera entfernt wurden und für manche Benutzer nützlich sind.

Vielen Dank nochmals für die Beantwortung meiner Anfrage.
Aufrichtig.
Vincent

Betreff: Installation der vorherigen Version eines Pakets

Veröffentlicht: 21. März 2025 - 14:11 Uhr
von dcardon
Hallo Vincent,

vielen Dank für dein Feedback. Ich leite deinen Beitrag an das Team weiter, das die Shop-Pakete betreut, damit sie das Paket gemäß deinem Hinweis korrigieren können. :-)

Viele Grüße,

Denis

Betreff: Installation der vorherigen Version eines Pakets

Veröffentlicht: 24. März 2025 - 11:10 Uhr
von italbot
Hallo,

ich habe den Code so angepasst, dass eine bereits installierte Version von ChimeraX nicht zusammen mit Chimera deinstalliert wird. Die Versionsprüfung funktionierte tatsächlich nicht; auch diese habe ich korrigiert.

Vielen Dank für Ihren Hinweis.

Mit freundlichen Grüßen,

Ingrid