Página 1 de 1

¿Cómo instalar un software que ya está instalado?

Publicado: 5 de enero de 2016 - 6:40 a. m.
por dominix
Ya tengo instalado mucho software de Wapt en mis ordenadores.
Sin embargo, Wapt no ofrece la opción de actualizarlo.
Así que me gustaría saber cómo integrar el software que ya tengo instalado.

Gracias por su ayuda y ¡Feliz Año Nuevo 111110000 a todos!

Re: ¿Cómo instalar el software Wapit?

Publicado: 5 de enero de 2016 - 8:47 a. m.
por Floflobel
Todo depende de tu script de Python. Si simplemente lo instalas, se reinstalará sobre el software existente, incluso si ya está presente.
Puedes añadir una condición para que, si ya está presente, no se reinstale.
También puedes experimentar con la versión...

Re: ¿Cómo instalar el software Wapit?

Publicado: 5 de enero de 2016 - 8:57 a. m.
por htouvet
De hecho, los paquetes bien escritos prueban la versión ya instalada y solo realizan la configuración posterior si el software ya está presente en la máquina (funciones install_exe_if_needed o install_msi_if_needed, por ejemplo)
Si la flota es homogénea (todas las PC tienen aproximadamente el mismo software), entonces un paquete de software grupal aplicado a todas las PC hará el trabajo.

Alternativamente, una solución es crear un paquete que detecte el software presente e instale el paquete WAPT correspondiente.
Luego, las actualizaciones se realizan a través de Wapt.

Ejemplo de un script setup.py correspondiente:

Código: Seleccionar todo

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

uninstallkey = []

softs = (
    ('adobe flash','tis-flash'),
    ('java update','tis-java'),
    ('irfanview','tis-irfanview'),
    ('7-zip','tis-7zip'),
    ('notepad++','tis-notepadplusplus'),
    ('mozilla firefox esr','tis-firefox-esr'),
)

def update_control(control):
    import re
    # replace description with list of keywords
    control.description = re.sub('\(.*\)','(%s)'%(','.join([s for s,p in softs])),control.description)

def install():
    for (keywords,package) in softs:
        found = installed_softwares(keywords)
    if found and not WAPT.is_installed(package):
        print('%s %s installed, adding package'%(found[0]['name'],found[0]['version']))
        WAPT.install(package)

Re: ¿Cómo instalar el software Wapit?

Publicado: 5 de enero de 2016 - 9:44 a. m.
por Floflobel
Buen día,

Una pregunta un poco fuera del tema.
¿Esta salida de impresión devuelve correctamente el nombre y la versión del paquete?

Código: Seleccionar todo

print('%s %s installed, adding package'%(found[0]['name'],found[0]['version']))
        WAPT.install(package)

Re: ¿Cómo instalar el software Wapit?

Publicado: 5 de enero de 2016 - 12:08 p. m.
por htouvet
no exactamente

Código: Seleccionar todo

print('%s %s installed, adding package'%(found[0]['name'],found[0]['version']))
        WAPT.install(package)
muestra el primer nombre de software encontrado en el registro de Windows que coincide con las palabras clave, no los paquetes de Wapt.

Por cierto, hay un problema de sangría en mi publicación anterior.
Es :

Código: Seleccionar todo

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

uninstallkey = []

softs = (
    ('adobe flash','tis-flash'),
    ('java update','tis-java'),
    ('irfanview','tis-irfanview'),
    ('7-zip','tis-7zip'),
    ('notepad++','tis-notepadplusplus'),
    ('mozilla firefox esr','tis-firefox-esr'),
)

def update_control(control):
    import re
    # replace description with list of keywords
    control.description = re.sub('\(.*\)','(%s)'%(','.join([s for s,p in softs])),control.description)

def install():
    for (keywords,package) in softs:
        found = installed_softwares(keywords)
        if found and not WAPT.is_installed(package):
            print('%s %s installed, adding package'%(found[0]['name'],found[0]['version']))
            WAPT.install(package)