Paquete vacío para desinstalar una aplicació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.
Benoitpatin
Mensajes: 37
Inscripción: 21 de febrero de 2018 - 17:05

22 de marzo de 2018 - 09:44

Buen día,

- Versión WAPT instalada: 1.5.1.18 Comunidad
- Sistema operativo de servidor Linux Debian 9
- Sistema operativo de la máquina de administración/creación de paquetes: Windows 10

Me gustaría crear un paquete libre de código fuente con un solo comando para desinstalar un programa en mis computadoras.

No tengo el código fuente original de la aplicación.
Usando el comando wapt-get list-registry software_name puedo recuperar la cadena de desinstalación y la clave de desinstalación en una máquina de destino.

Así que tontamente creé un paquete vacío con la información dada:

Código: Seleccionar todo

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

uninstallkey = ['Foxit Reader_is1']


def uninstall():
    print('uninstalling Foxit Reader')
    run(r'"C:\Program Files (x86)\Foxit Software\Foxit Reader\unins000.exe"')
Pero no parece funcionar correctamente. Como este es mi segundo paquete, creo que me faltan un par de cosas para que funcione correctamente.
¿Hay alguien que pueda ayudarme?

GRACIAS
Avatar de usuario
agauvrit
Experto en WAPT
Mensajes: 238
Inscripción: 17 de noviembre de 2016 - 10:25
Ubicación: Nantes
Contacto :

22 de marzo de 2018 - 10:03

Hola Benoît,

La función desinstalar Esto permite desinstalar el software implementado con WAPT. Si desea desinstalar el software directamente, debe escribir este código en la función instalar del paquete.

Si desea desinstalar software en todas las versiones posibles, lo mejor es utilizar una función como esta:

Código: Seleccionar todo

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

uninstallkey = []

def install():
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('18'):
                run(WAPT.uninstall_cmd(soft['key']))
Benoitpatin
Mensajes: 37
Inscripción: 21 de febrero de 2018 - 17:05

22 de marzo de 2018 - 14:17

¡Genial, la respuesta rápida! :D

Sin embargo, necesito alguna aclaración...

Código: Seleccionar todo

def install():
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('18'):
                run(WAPT.uninstall_cmd(soft['key']))
¿La palabra "versión" entre una comilla simple y un corchete debe corresponder a la versión en mi Agregar o quitar programas?
¿A qué debería corresponder la palabra "key" entre comillas simples y corchetes? ¿A la clave de desinstalación o a la cadena de desinstalación?
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

22 de marzo de 2018 - 14:46

benoitpatin escribió: 22 de marzo de 2018 - 14:17 ¿La palabra "versión" entre comillas simples y corchetes se refiere a la versión en mi Agregar o quitar programas?

benoitpatin escribió: 22 de marzo de 2018 - 14:17 ¿A qué se refiere la palabra "clave" entre comillas simples y corchetes? ¿A la clave de desinstalación o a la cadena de desinstalación?
La palabra 'clave' no debe reemplazarse; recuperaremos el valor de la 'clave' de la 'clave de desinstalación' que se está probando actualmente
Benoitpatin
Mensajes: 37
Inscripción: 21 de febrero de 2018 - 17:05

22 de marzo de 2018 - 14:57

Bueno, genial, aquí está min setup.py:

Código: Seleccionar todo

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

uninstallkey = ['Foxit Reader_is1']


def install():
    print('uninstalling Foxit Reader')
    for soft in installed_softwares('Foxit Reader'):
        if Version(soft['version']) < Version('8.2.1.6871'):
            run(WAPT.uninstall_cmd(soft['key']))
Construyo, cargo, lanzo el paquete en mi máquina pero no pasa nada.
No he cometido ningún error en ningún punto. ¿Me he perdido algo?
Avatar de usuario
Sfonteneau
Experto en WAPT
Mensajes: 2312
Registrado: 10 de julio de 2014 - 23:52
Contacto :

22 de marzo de 2018 - 15:17

No veo ningún error en tu código.

En la máquina en la que estás realizando la prueba.

¿Puedes ejecutar un:

Código: Seleccionar todo

wapt-get list-registry Foxit


para ver qué pasa
Avatar de usuario
agauvrit
Experto en WAPT
Mensajes: 238
Inscripción: 17 de noviembre de 2016 - 10:25
Ubicación: Nantes
Contacto :

22 de marzo de 2018 - 15:18

Para ver la lista de software potencialmente afectado:

Código: Seleccionar todo

wapt-get list-registry Foxit Reader
Si el software no aparece, no se desinstalará; es posible que necesites usar solo "Foxit" como palabra clave de búsqueda

Alejandro
Benoitpatin
Mensajes: 37
Inscripción: 21 de febrero de 2018 - 17:05

22 de marzo de 2018 - 15:22

Código: Seleccionar todo

UninstallKey                           Software                                                              Version             Uninstallstring                        
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Foxit Reader_is1                       Foxit Reader                                                          8.2.1.6871          "C:\Program Files (x86)\Foxit Software\Foxit Reader\unins000.exe"
Avatar de usuario
agauvrit
Experto en WAPT
Mensajes: 238
Inscripción: 17 de noviembre de 2016 - 10:25
Ubicación: Nantes
Contacto :

22 de marzo de 2018 - 15:27

La versión devuelta es igual a la versión impuesta en la prueba de versión (8.2.1.6871) por lo que no se desinstala.

Para ser más "bruto", puedes escribir la desinstalación completa de todas las versiones posibles de esta manera:

Código: Seleccionar todo

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

uninstallkey = ['Foxit Reader_is1']


def install():
    print('uninstalling Foxit Reader')
    for soft in installed_softwares('Foxit Reader'):
            run(WAPT.uninstall_cmd(soft['key']))
Benoitpatin
Mensajes: 37
Inscripción: 21 de febrero de 2018 - 17:05

22 de marzo de 2018 - 17:32

No funciona y no veo ningún mensaje de error (aunque, pensándolo bien, ¡quizás no haya ningún error!).
¿Cómo puedo solucionarlo?
Bloqueado