Pagina 1 di 1

Come installare un software già installato?

Pubblicato: 5 gennaio 2016 - 06:40
di dominix
Ho già installato molti software offerti da Wapt sui miei computer.
Tuttavia, Wapt non offre la possibilità di aggiornarli.
Quindi, ecco cosa vorrei sapere: come posso integrare i software già installati?

Grazie per l'aiuto e buon anno a tutti!

Re: Come installare il software Wapit?

Pubblicato: 5 gennaio 2016 - 08:47
di Floflobel
Dipende tutto dal tuo script Python. Se lo installi semplicemente, verrà reinstallato sovrascrivendo il software esistente, anche se è già presente.
Puoi aggiungere una condizione in modo che, se è già presente, non venga reinstallato.
Puoi anche provare a modificare la versione...

Re: Come installare il software Wapit?

Pubblicato: 5 gennaio 2016 - 08:57
di htouvet
Infatti, i pacchetti ben scritti testano la versione già installata ed eseguono la post-configurazione solo se il software è già presente sulla macchina (ad esempio le funzioni install_exe_if_needed o install_msi_if_needed)
Se la flotta è omogenea (tutti i PC hanno più o meno lo stesso software), allora un pacchetto software di gruppo applicato a tutti i PC sarà sufficiente.

In alternativa, una soluzione è quella di creare un pacchetto che rilevi il software presente e installi il pacchetto WAPT corrispondente.
Quindi gli aggiornamenti vengono effettuati tramite Wapt.

Esempio di uno script setup.py corrispondente:

Codice: Seleziona tutto

# -*- 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: Come installare il software Wapit?

Pubblicato: 5 gennaio 2016 - 09:44
di Floflobel
Buongiorno,

Una domanda leggermente fuori tema.
Questa stampa restituisce correttamente il nome e la versione del pacchetto?

Codice: Seleziona tutto

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

Re: Come installare il software Wapit?

Pubblicato: 5 gennaio 2016 - 12:08
di htouvet
non proprio

Codice: Seleziona tutto

print('%s %s installed, adding package'%(found[0]['name'],found[0]['version']))
        WAPT.install(package)
visualizza il primo nome software trovato nel registro di Windows che corrisponde alle parole chiave, non i pacchetti Wapt.

A proposito, c'è un problema di rientro nel mio post precedente.
È :

Codice: Seleziona tutto

# -*- 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)