Indicar la validez de una instalación

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
Raikyn
Mensajes: 8
Inscripciones: 2 de mayo de 2016 - 15:36 horas.

6 de marzo de 2017 - 16:00 horas

Hola,

llevo algo más de un año creando paquetes con regularidad y me encuentro con un problema:

he creado un paquete para instalar software empresarial (ERDAS 2014 en este caso). Se instala sin problemas , pero WAPT considera que la instalación es incorrecta y no tengo ni idea de por qué.

Como resultado, este paquete (a pesar de estar configurado correctamente) intenta reinstalarse cada vez que se realiza un cambio en los ordenadores donde está instalado.

Mi pregunta es: ¿Es posible indicarle a WAPT (a través de la consola) que un paquete está correctamente instalado? (¿Forzar el estado OK?).

No quiero usar la función "Olvidar paquete", porque me gustaría poder desinstalarlo limpiamente a través de la consola de WAPT cuando sea necesario.

Si esta funcionalidad no existe, ¿quizás se podría implementar?
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

6 de marzo de 2017 - 16:30

Hola,

para ayudarte necesitamos el contenido del paquete (setup.py).

Si, por ejemplo, lo ejecutas, es posible que no devuelva un estado de 0 y, por lo tanto, Wapt considere que la instalación ha fallado.

Para saber exactamente qué está haciendo Wapt, necesitas indicarnos el error:
https://www.wapt.fr/fr/doc/Utilisation/ ... et-general

Simon
Raikyn
Mensajes: 8
Inscripciones: 2 de mayo de 2016 - 15:36 horas.

7 de marzo de 2017 - 08:53

Hola, aparentemente es un problema de "estado"; no está en 0.

Este es el contenido de setup.py:

# -*- coding: utf-8 -*-
from setuphelpers import *

uninstallkey = ['{4099F374-39B8-4226-9AC2-2069CEE8BF82}']


def install():
run(r'"foundation\Setup.exe" /s ERDASFoundation2014 /ni ACCEPT_EULA=1')


El error:
CalledProcessError: Command '('"foundation\\Setup.exe" /s ERDASFoundation2014 /ni ACCEPT_EULA=1',)' returned non-zero exit status 1

Debo señalar que si ejecuto este comando directamente desde el símbolo del sistema en la PC, no obtengo ningún error.
Floflobel
Mensajes: 135
Inscripciones: 15 Oct 2015 - 17:32 horas.

7 de marzo de 2017 - 11:01

Buen día,

Personalmente, uso la función install_exe_if_needed: https://dev.tranquil.it/sphinxdocs/sour ... _si_es_necesario

Primero necesitarás la clave de desinstalación; aquí es donde la puedes encontrar:

Código: Seleccionar todo

# For OS 64bits and Software 32bits version : HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\
# For OS 32 bits or 64bits (and Software 64bits version) : HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\
Atentamente,
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

7 de marzo de 2017 - 18:01

La función `install_exe_if_needed` también generará un error.

https://dev.tranquil.it/sphinxdocs/sour ... _if_needed

De hecho, acepta los códigos de salida 0 y 3010, pero el código de retorno 1 no está entre ellos.

Si usa `install_exe_if_needed` en la segunda pasada, no debería generar un error porque se encontrará la `uninstallkey`.

Si lo desea, puede agregar el código de salida 1, como es aceptable para Wapt:

`run('"install.exe" /s',accept_returncodes=[0, 1, 3010])`.

Pero, ¿es el código de salida 1 un código de salida normal?

Simon
Raikyn
Mensajes: 8
Inscripciones: 2 de mayo de 2016 - 15:36 horas.

8 de marzo de 2017 - 09:59

Muchísimas gracias, funciona gracias a accept_returncodes=[0, 1, 3010].
Ya había visto esta función, pero como nunca la había usado, la había olvidado... disculpen las molestias.

Respecto al código de salida 1, admito que, en la mayoría de los casos, efectivamente correspondía a un problema en la instalación.
Sin embargo, para ERDAS Foundation 2014, la instalación se completa a pesar de este código.

¡Gracias de nuevo!
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

8 de marzo de 2017 - 10:15

El mejor enfoque, como indicó Floflobel, es usar install_exe_if_needed con accept_returncodes=[0, 1, 3010].

De esta manera, si no se encuentra la clave de desinstalación después de la ejecución, el paquete fallará (por una buena razón ;-) ).
Bloqueado