[RESUELTO] Instalar la versión anterior de un paquete

Preguntas sobre paquetes WAPT / Solicitudes y ayuda sobre paquetes WAPT.
Reglas del foro
Reglas del foro de la comunidad
* Soporte en inglés en www.reddit.com/r/wapt
* El soporte de la comunidad en francés está disponible en este foro
* Por favor, anteponga [RESUELTO] al título del tema si está resuelto.
* Por favor, no edite un tema que esté etiquetado como [RESUELTO]. Abra un nuevo tema haciendo referencia al anterior.
* Especifique la versión de WAPT instalada, la versión completa y el número de compilación (2.2.1.11957 / 2.2.2.12337 / etc.), así como la edición Enterprise/Discovery.
* Las versiones 1.8.2 y anteriores ya no son compatibles. Las únicas preguntas aceptadas sobre la versión 1.8.2 están relacionadas con la actualización a una versión compatible (2.1, 2.2, etc.).
* Especifique el sistema operativo del servidor (Linux/Windows) y la versión (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Especifique el sistema operativo de la máquina de administración/creación de paquetes y de la máquina con el agente problemático, si corresponde (Windows 7/10/11/Debian 11/etc.).
* Evite hacer varias preguntas al abrir un tema, ya que podría ser ignorado. Si hay varios temas, ábralos por separado, preferiblemente uno tras otro y no todos a la vez (es decir, no sature el foro con spam).
* Incluya fragmentos de código, capturas de pantalla y otras imágenes directamente en la publicación. Los enlaces a Pastebin, Bitly y otros sitios de terceros serán eliminados sistemáticamente.
* Como en cualquier foro comunitario, el soporte es proporcionado voluntariamente por los miembros. Si necesita soporte comercial, puede comunicarse con el departamento de ventas de Tranquil IT al 02.40.97.57.55.
Bloqueado
VincentUCA
Mensajes: 4
Inscripciones: 25 oct 2023 - 14:49 horas.

19 de marzo de 2025 - 11:56

Versión 2.6 de WAPT

Buen día,
Lo siento si ya se abrió un tema similar, no pude encontrarlo.
Actualmente estoy desarrollando un paquete de software cuyo instalador no elimina la versión anterior. Así que agregué un fragmento de código para hacerlo. Pero para probar, me gustaría poder reinstalar la versión anterior. Creo que ya lo hice antes, pero no tomé notas y ya no recuerdo cómo.
Encontré una sección en la documentación que dice:
Cada comando que toma el nombre de un paquete como parámetro también puede tomar el `package_uuid` único del paquete como parámetro (wapt-get install, wapt-get forget, etc.). Usar un GUID permite especificar un paquete único sin ambigüedades sobre su arquitectura o versión. El `package_uuid` aparece en la salida de `wapt-get list` y `wapt-get search`. Por ejemplo:
Así que hice una

Código: Seleccionar todo

wapt-get search monpaquet
para recuperar el ID del paquete en la versión que me interesa.
Pero luego cuando ejecuto el comando

Código: Seleccionar todo

wapt-get install c65ecfc2-ed87-428a-abc7-1646497ee71e
Me sale el siguiente error:
Usando el archivo de configuración: C:\Program Files (x86)\wapt\wapt-get.ini
instalar usando los paquetes WAPT c65ecfc2-ed87-428a-abc7-1646497ee71e

Resultados:
Crítico:
=== Paquetes no disponibles ===
c65ecfc2-ed87-428a-abc7-1646497ee71e [x64_fr_PROD,DEV,PREPROD]
¿En qué me estoy equivocando?
Gracias de antemano por su respuesta.
Atentamente.
Vicente
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

20 de marzo de 2025 - 09:42

Hola Vincent,

Puede forzar la instalación de una versión particular utilizando la siguiente sintaxis:

Código: Seleccionar todo

wapt-get install "tis-monpaquet(=2.5.3)"
Sin embargo, la versión "pinning" no se almacena en el agente y, por lo tanto, el paquete se actualizará en la próxima actualización de wapt-get.

Atentamente,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
Avatar de usuario
vcardón
Experto en WAPT
Mensajes: 272
Inscripciones: 06 Oct 2017 - 22:55 horas.
Ubicación: Nantes, Francia

20 de marzo de 2025 - 19:46

Hola, para complementar el comentario de Denis, si quieres una versión de un software sin que se actualice, duplica la versión que te interesa y cambia el nombre del paquete con la versión del software.

Por ejemplo: el paquete tis-firefox para la versión 136.0.2 se convertiría en tis-firefox-pinned-136.0.2.
Vincent CARDON
Tranquilo IT
VincentUCA
Mensajes: 4
Inscripciones: 25 oct 2023 - 14:49 horas.

21 de marzo de 2025 - 11:34

Hola a todos,
Gracias por su valioso consejo. Probé con éxito la instalación de una versión anterior de mi paquete. Sin embargo, no se debe omitir la parte añadida por WAPT en el número de versión; de lo contrario, no funcionará. Para usar el ejemplo anterior, se ve así:

Código: Seleccionar todo

wapt-get install "tis-monpaquet(=2.5.3-2)"
Sugiero eliminar la instalación a través del UUID de un paquete de la documentación si ya no funciona y agregar este método a través de la "fijación" de versión que no he podido encontrar en otro lugar.

Siendo sincero, el paquete que intento desarrollar es para el software Chimera. Ya existe un paquete en el repositorio tranquil.it con el código para desinstalar versiones anteriores, pero he notado dos cosas.

El primer problema es que el número de versión del software Chimera no está registrado en el registro de Windows. Por lo tanto, el código del paquete es el siguiente:

Código: Seleccionar todo

for to_uninstall in installed_softwares("UCSF Chimera"):
        if Version(to_uninstall["version"]) < Version(last_version):
Pruebe siempre la condición:

Código: Seleccionar todo

if 0.0.0.0 < N° de la dernière version:
Por lo tanto, independientemente de la versión instalada, se desinstalará.

El segundo problema es que la función `installed_softwares("UCSF Chimera")` también recupera la clave de registro de ChimeraX, que tampoco tiene número de versión. Esto provoca que ChimeraX se desinstale durante el proceso de instalación de Chimera.

Vi que en la clave de registro de desinstalación de Chimera, el número de versión se indicaba en la clave "DisplayName". Por lo tanto, modifiqué el código de la siguiente manera:

Código: Seleccionar todo

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})")
Las condiciones probadas son:

Código: Seleccionar todo

if 1.18.0.0 <1.19.0.0:
Y

Código: Seleccionar todo

if "ChimeraX"<1.19.0.0:
Debido a que ChimeraX no tiene el número de versión incluido en "DisplayName", esta condición parece devolver Falso.

No es la solución más limpia, pero funciona. La última versión de Chimera no se desinstala ni se reinstala al actualizar el paquete sin cambiar la versión del software, y ChimeraX tampoco se desinstala, lo que permite que ambos paquetes coexistan. Admito que es un poco quisquilloso :ups: Porque ahora que he añadido la función para eliminar el acceso directo del escritorio, no creo que toque el código de este paquete. Normalmente no tiene mucho sentido tener Chimera y ChimeraX instalados en la misma máquina, pero al parecer, hay funciones que se eliminaron de Chimera en ChimeraX que son útiles para algunos usuarios.

Gracias nuevamente por responder a mi solicitud.
Atentamente.
Vicente
Avatar de usuario
dcardón
Experto en WAPT
Mensajes: 1908
Inscripción: 18 de junio de 2014 - 09:58
Ubicación: Saint Sébastien sur Loire
Contacto :

21 de marzo de 2025 - 14:11

Hola Vincent,

gracias por tus comentarios. Reenviaré tu mensaje al equipo que mantiene los paquetes de la tienda para que puedan corregir el paquete siguiendo tus indicaciones. :-)

Saludos,

Denis
Denis Cardon - Tranquil IT
¡Comparte tus experiencias en WAPT! Envíanos las URL de tus blogs y artículos en la "Tu opinión del foro y los publicaremos en el de WAPT
italbot
Mensajes: 46
Inscripciones: 26 sept 2023 - 15:50 horas.

24 de marzo de 2025 - 11:10

Hola,

acabo de adaptar el código para que una versión ya instalada de ChimeraX no se desinstale junto con Chimera. Efectivamente, la comprobación de la versión no funcionaba; también la he modificado.

Gracias por avisarnos.

Atentamente,

Ingrid
TI tranquila
Bloqueado