Página 1 de 2

[RESUELTO] WAPT.download_upgrades() no tuvo efecto

Publicado: 23 de julio de 2025 - 16:16
por brice73
Buen día,

En el paquete y, necesito usar el método WAPT.download_upgrades() para actualizar otro paquete x (actualizar a la versión n+1 del paquete x instalado en la versión n) y luego instalarlo con WAPT.install(x).

Sin embargo, esto no funciona. Durante la instalación del paquete y (sin error, el paquete se instala correctamente), la máquina no descarga la última versión (n+1) del paquete x y, por lo tanto, no la instala. Se queda con la versión n del paquete x. No entiendo por qué, dado que la versión n+1 del paquete x está disponible en el servidor WAPT y que el agente de la máquina está configurado correctamente para recuperar paquetes del servidor WAPT. Tampoco se trata de un problema de la madurez del paquete x (el problema ocurre independientemente de su madurez). Además, si selecciono la máquina en la consola, hago clic en "Buscar actualizaciones" y selecciono "Y descargar paquetes", la máquina sí descarga la versión n+1 del paquete x. (Abajo, este "paquete x" es "col73-xmind"; quiero actualizarlo e instalarlo durante la instalación de otro paquete)

Aquí están las líneas de código correspondientes:

Código: Seleccionar todo

 
    WAPT.download_upgrades()
    for p in WAPT.installed(include_errors=True):
        if p.package == 'col73-xmind':
            WAPT.install('col73-xmind')
  
Estas mismas líneas de código funcionaron antes (ya lo hice así con otro paquete hace un año sin ningún problema)

¿De donde podría venir el problema?

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 24 de julio de 2025 - 10:19 a. m.
por brice73
Añadí algunas líneas de código para realizar comprobaciones y, efectivamente, el paquete x se encuentra en la versión n (en realidad, la 16), pero, curiosamente, la versión n+1 (en realidad, la 17) disponible en el servidor no se detecta, descarga ni instala, según el registro. En su lugar, wapt vuelve a descargar e instalar la versión n (16) :| como se muestra en el registro a continuación.
Sin embargo, como indiqué en mi mensaje anterior, cuando verifico las actualizaciones de paquetes para la estación de trabajo usando la consola y descargo los paquetes, la estación de trabajo efectivamente ve y descarga la versión n+1 (17)

Código: Seleccionar todo

    WAPT.download_upgrades()
    for p in WAPT.installed(include_errors=True):
        if p.package == 'col73-xmind':
            print("paquet col73-xmind détecté")
            version_paquet=(p.version).split("-")[1]
            print('version du paquet wapt de xmind installé=%s - tentative de maj du paquet"' % version_paquet)
            WAPT.install('col73-xmind',force=True)
 
A continuación se muestra el registro de instalación del paquete col73-xmind8, que contiene las líneas de código anteriores:

Paquete col73-xmind detectado,
paquete xmind wapt instalado versión=16 - intentando actualizar el paquete"
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 262144 / 161672722 (0%) (15,62 Mb/s)
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 68419584 / 161672722 (42%) (64.22Mb/s)
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 138936320 / 161672722 (86%) (65,72 Mb/s)
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 161672722 / 161672722 (100%) (65,78 Mb/s)
Instalando XMind
Instalando: xmind-8-update2-windows.exe (3.7.2.0)
Copiando la carpeta XMind (AppData) a C:\Sources\XMind para una futura instalación...
Copia completada correctamente
Instalación completada correctamente
Copiando la carpeta de la aplicación portátil XMind8
Paquete wapt de xmind instalado versión=16

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 24 de julio de 2025 - 10:24 a. m.
por sfonteneau
Buen día
Si busco actualizaciones de paquetes para la estación de trabajo descargando los paquetes, la estación de trabajo ve y descarga correctamente la versión n+1 (17)
¿Entonces, en el código que estás haciendo, estás haciendo una actualización? WAPT.update()

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 24 de julio de 2025 - 11:43
por brice73
Hola Simon,

no, no había usado WAPT.update() antes.

Al hacerlo antes de WAPT.upgrades() ahora funciona, ¡gracias!

Saludos.

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 25 de julio de 2025 - 15:27
por dcardon
Hola Brice,

debes tener cuidado de no usar `download_upgrade` ni `update` en una función `install`, ya que en muchos casos, cuando el equipo se apaga durante la instalación, no habrá conexión de red (VPN, Wi-Fi, 802.1x, etc.), y la descarga, y por lo tanto la instalación, fallará.

Saludos,

Denis

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 25 de julio de 2025 - 19:08
por vcardon
De hecho, es mejor poner el segundo software como una dependencia del primero en el archivo de control; es mucho más limpio y menos propenso a problemas.

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 29 de julio de 2025 - 09:37
por brice73
Hola Denis y Vincent,

gracias por sus consejos. Este caso es un poco inusual. En realidad, no puedo ni quiero hacer de este paquete una dependencia porque es un paquete mal nombrado cuya función uninstall() no funciona (error) y que no se puede desinstalar tal cual. Así que quiero reemplazarlo con otro paquete, y. Por lo tanto, estoy usando WAPT.update() y WAPT.download_upgrades() para actualizar el paquete defectuoso, y en este mismo paquete de reemplazo, y, desinstalo el paquete x más tarde después de que se haya actualizado usando WAPT.remove(paquete x), ya que la función de desinstalación del paquete x funciona entonces.

Ya he eliminado este paquete de todas las máquinas, así que no se reinstalará una vez que se complete la desinstalación.

Esto me permite automatizar su reemplazo cuando instale el nuevo paquete correcto. En cualquier caso, sería demasiado tedioso tener que desinstalar manualmente el paquete x en cientos de máquinas después de una actualización (las máquinas también tienen que estar encendidas para que esto funcione). Así que estoy aprovechando la instalación del nuevo paquete de reemplazo para automatizar esto. Ya lo hice hace un año con otro paquete que tenía el mismo problema, y ​​todo funcionó sin problemas. En cientos de máquinas, no hubo problemas para descargar la nueva versión del paquete. La descarga se realiza desde un repositorio secundario en la red local.

Pero pensé que cuando el sistema se apaga, waptexit comienza a descargar las actualizaciones antes de instalarlas.

Saludos,
Brice

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 1 de agosto de 2025 - 20:01
por vcardon
¡Pero pensé que cuando Waptexit se cerró, comenzó a descargar actualizaciones antes de instalarlas!
No, todo debe haberse descargado antes de iniciar waptexit porque no podemos saber el estado de disponibilidad de la red cuando la máquina está apagada.

Lo que podrías haber hecho, ahora que conocemos mejor tu caso de uso, es corregir la función de desinstalación del paquete de dependencia, enviar la corrección primero y luego habría funcionado bien creo que con una corrección adicional al archivo "control" de tu paquete principal con un "depends: newpackage" y un "conflicts: oldpackage".

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 5 de agosto de 2025 - 15:37
por brice73
Hola Vincent,
Lo que podrías haber hecho, ahora que conocemos mejor tu caso de uso, es corregir la función de desinstalación del paquete de dependencia, enviar la corrección primero y luego habría funcionado bien creo que con una corrección adicional al archivo "control" de tu paquete principal con un "depends: newpackage" y un "conflicts: oldpackage".
De hecho, eso parece posible. Pensé que las máquinas permanecerían en modo de error porque, si la nueva versión del paquete no ha sido actualizada, su desinstalación previa (a causa del conflicto) fallará y el nuevo paquete de reemplazo no se instalará, sino que devolverá un error. Pensándolo bien, debería ser solo temporal, en realidad, hasta que las máquinas actualicen el paquete cuya función de desinstalación falla.

Re: WAPT.download_upgrades() no tiene efecto

Publicado: 5 de agosto de 2025 - 19:43
por vcardon
La función de desinstalación se puede solucionar con una versión más reciente del paquete, que es más sencilla y fiable que lo que estás intentando hacer.

Lo importante es que puedes hacer lo que quieras con WAPT.