Page 1 sur 1

[RESOLU] Installer la version précédente d'un paquet

Posté : 19 mars 2025 - 11:56
par VincentUCA
WAPT version 2.6

Bonjour,
Désolé si un topic similaire a déjà été ouvert je n'ai pas réussi à le trouver.
Je développe actuellement un paquet logiciel dont l'installeur ne supprime pas l'ancienne version. J'ai donc ajouté un morceau de code pour le faire. Mais pour tester, j'aimerai pouvoir réinstaller l'ancienne version. Il me semble que j'avais déjà pu le faire. Mais je n'avais pas pris de note et depuis j'ai oublié de quelle manière je m'y étais pris.
J'ai trouvé dans la documentation un encart indiquant :
Chaque commande qui prend un nom de paquet comme paramètre peut également prendre le package_uuid unique du paquet comme paramètre (wapt-get install, wapt-get forget, etc.). L’utilisation d’un GUID permet de spécifier un paquet unique sans ambiguïté sur son architecture ou sa version. Le package_uuid est listé dans la sortie de wapt-get list et wapt-get search. Par exemple :
J'ai donc fait un

Code : Tout sélectionner

wapt-get search monpaquet
pour récupérer l'ID du paquet dans la version qui m'intéresse.
Mais quand ensuite j'exécute la commande

Code : Tout sélectionner

wapt-get install c65ecfc2-ed87-428a-abc7-1646497ee71e
j'obtiens l'erreur :
Using config file: C:\Program Files (x86)\wapt\wapt-get.ini
install using WAPT packages c65ecfc2-ed87-428a-abc7-1646497ee71e

Results :
Critical :
=== Unavailable packages ===
c65ecfc2-ed87-428a-abc7-1646497ee71e [x64_fr_PROD,DEV,PREPROD]
Où est-ce que je fais une erreur?
Merci d'avance pour votre réponse.
Cordialement.
Vincent

Re: Installer la version précédente d'un paquet

Posté : 20 mars 2025 - 09:42
par dcardon
Bonjour Vincent,

vous pouvez forcer l'install d'une version particulière avec la syntaxe suivante:

Code : Tout sélectionner

wapt-get install "tis-monpaquet(=2.5.3)"
Par contre le "pinning" de version n'est pas stocké dans l'agent, et donc le paquet sera mis à jour au prochain wapt-get upgrade.

Cordialement,

Denis

Re: Installer la version précédente d'un paquet

Posté : 20 mars 2025 - 19:46
par vcardon
Bonjour, pour rebondir sur la remarque de Denis, si vous voulez une version d'un logiciel sans qu'il se mette à jour, dupliquez la version qui vous intéresse et renommez le paquet avec la version du logiciel.

Par exemple : le tis-firefox de la version 136.0.2 deviendrait tis-firefox-pinned-136.0.2.

Re: Installer la version précédente d'un paquet

Posté : 21 mars 2025 - 11:34
par VincentUCA
Bonjour à vous,
Merci pour vos précieux conseils. J'ai testé avec succès l'installation d'une ancienne version de mon paquet. Par contre il ne faut pas omettre dans le numéro de version la particule ajoutée par WAPT sinon cela ne fonctionne pas. Pour reprendre l'exemple précédent cela donne :

Code : Tout sélectionner

wapt-get install "tis-monpaquet(=2.5.3-2)"
Je suggère d'enlever de la documentation l'installation via l'UUID d'un paquet si cela ne fonctionne plus et d'ajouter cette méthode via "pinning" de version que je n'ai pas réussi à trouver ailleurs.

Pour tout vous dire, le paquet que je cherche à développer est pour le logiciel Chimera. Un paquet existe déjà dans le dépôt tranquil.it avec le code pour désinstaller les versions précédentes mais je me suis aperçu de deux choses.

La première, c'est que le numéro de version du logiciel Chimera n'est pas renseigné dans le registre Windows. Donc le code du paquet qui est le suivant :

Code : Tout sélectionner

for to_uninstall in installed_softwares("UCSF Chimera"):
        if Version(to_uninstall["version"]) < Version(last_version):
Teste toujours la condition :

Code : Tout sélectionner

if 0.0.0.0 < N° de la dernière version:
Du coup, peu importe la version installée, elle sera désinstallée.

La deuxième, c'est que la fonction installed_softwares("UCSF Chimera") remonte aussi la clé de registre du logiciel ChimeraX qui lui non plus n'a pas de numéro de version renseignée. Avec comme conséquence la désinstallation de ChimeraX lors de l'installation de Chimera.

J'ai vu que dans la clé de registre de désinstallation de Chimera le numéro de version était indiqué dans la clé "DisplayName" J'ai donc modifié le code de la façon suivante :

Code : Tout sélectionner

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})")
Les conditions testées deviennent :

Code : Tout sélectionner

if 1.18.0.0 <1.19.0.0:
et

Code : Tout sélectionner

if "ChimeraX"<1.19.0.0:
Car ChimeraX n'a pas le numéro de version inclue dans "DisplayName". Cette condition semble renvoyer False.

C'est pas super propre mais ça fonctionne. La dernière version de Chimera n'est pas désinstallée pour être réinstallée dans le cas d'une mise à jour du paquet sans changement de version du logiciel, et, ChimeraX n'est plus désinstallé non plus dans l'opération et les deux paquets logiciels peuvent cohabiter. J'en conviens c'est du chipotage :oops: car maintenant que j'ai ajouté la fonction pour enlever le raccourcis du bureau je ne pense pas que je retoucherai au code de ce paquet. Et puis normalement il y a assez peu d'intérêt d'avoir Chimera et ChimeraX d'installés sur le même poste mais apparemment il y aurait des fonctions qui ont été retirées de Chimera dans ChimeraX qui servent pour certains.

Je vous remercie encore une fois pour avoir répondu à ma demande.
Cordialement.
Vincent

Re: Installer la version précédente d'un paquet

Posté : 21 mars 2025 - 14:11
par dcardon
Salut Vincent,

merci pour le retour. Je forwarde ton post à l'équipe qui s'occupe de la maintenance des paquets du store pour qu'ils corrigent le paquet en suivant vos conseils :-)

Cordialement,

Denis

Re: Installer la version précédente d'un paquet

Posté : 24 mars 2025 - 11:10
par italbot
Bonjour,

Je viens d'adapter le code pour qu'une version de chimeraX déjà installée ne soit pas désinstallée en même temps que Chimera et effectivement la vérification de la version n'était pas fonctionnelle, j'ai modifié également.

Merci d'avoir remonté ces informations.

Cordialement,

Ingrid