Pagina 1 di 1

Il principio degli aggiornamenti dei pacchetti?

Pubblicato: 18 luglio 2018 - 14:19
di tsunyan
Buongiorno,

Ho iniziato a utilizzare di recente la versione 1.5.1.26 di WAPT Community e ho una domanda che mi tormenta. Non capisco bene come funzionano gli aggiornamenti del pacchetto software.

Quando importo un pacchetto dallo store WAPT https://store.wapt.fr/ Utilizzando il pulsante "Importa da Internet", ricevo questo pacchetto nel mio repository privato. Finora tutto bene. Ma se sul sito ufficiale è disponibile una nuova versione del software, il pacchetto non si aggiorna automaticamente.

L'importazione del pacchetto dallo store WAPT aggiornerà i pacchetti nel mio repository privato? In tal caso, dipendiamo dalla persona che gestisce il pacchetto nello store? In caso contrario, dobbiamo attendere una nuova versione sullo store prima di reimportarlo nel nostro repository privato?

Un'altra domanda relativa agli aggiornamenti dei pacchetti

Ho notato che la versione di OwnCloud sullo store è obsoleta. Ho quindi creato il pacchetto e aggiunto una funzione `update_package()` che aggiornerà il codice sorgente se non è già aggiornato all'interno del pacchetto. Per chi utilizza ownCloud, ecco la funzione che recupera l'ultima versione del software dal sito web ufficiale https://owncloud.org/download/ :

Codice: Seleziona tutto

from setuphelpers import *
import glob
import re

def update_package():
    htmlSource = wgets("https://owncloud.org/download/").splitlines()
    filename = ''
    realVersion = ''

    for line in htmlSource:

        match = re.search("https://download.owncloud.com/desktop/stable/ownCloud-.*-setup\.exe", line)
        if match:
            realVersion = line[line.find("ownCloud-")+9:line.find("-setup.exe")]
            print("Last version : ", realVersion)
            filename = 'ownCloud-%s-setup.exe' % realVersion
            print("File name : ", filename)

    exe = glob.glob('*.exe')
    for fn in exe:
        if fn != filename :
            print 'remove' + fn
            remove_file(fn)

    if not isfile(filename):
        print('Download' + filename)
        wget('https://download.owncloud.com/desktop/stable/ownCloud-%s-setup.exe' % (realVersion), filename)

    print ('Write ' + realVersion + '-0 in WAPT\\control')
    from waptpackage import PackageEntry
    pe = PackageEntry()
    pe.load_control_from_wapt(os.getcwd())
    pe.version = realVersion +'-0'
    pe.save_control_to_wapt(os.getcwd())

    print('The update is complete, you can now test and then launch a build upload.')
    
if __name__ == '__main__':
    update_package()
Funziona perfettamente in PyScripter. Cliccando con il tasto destro del mouse su `update-package-source` e selezionando "Esegui", si aggiorna il software nella cartella e la versione nel file `control`. A questo punto basta eseguire `build-upload` e il gioco è fatto. Il problema è che non è possibile farlo direttamente dalla console. Forse non ho capito come; correggetemi se sbaglio.

Per un'alternativa un po' "brutta", potrei includere l'aggiornamento del pacchetto all'inizio della funzione install() dopo aver verificato se la versione su Internet è superiore a quella del mio pacchetto; non l'ho ancora provato, ma non mi sembra molto adatto.

Grazie per il tuo feedback

Re: Il principio degli aggiornamenti dei pacchetti?

Pubblicato: 18 luglio 2018 - 21:58
di kguerineau
Buonasera,
Quando importo un pacchetto dal negozio WAPT (https://store.wapt.fr/) utilizzando il pulsante "Importa da Internet", ricevo il pacchetto nel mio repository privato. Fin qui tutto bene. Tuttavia, se sul sito ufficiale del software viene rilasciata una nuova versione, il pacchetto non si aggiorna automaticamente.

L'importazione del pacchetto dal negozio WAPT aggiornerà automaticamente anche i pacchetti nel mio repository privato? In tal caso, dipendiamo dalla persona che gestisce il pacchetto sul negozio? In caso contrario, dobbiamo attendere una nuova versione sul negozio prima di poterlo reimportare nel nostro repository privato?
Quando aggiorniamo un software, è necessario importarlo sul server WAPT. È possibile creare uno script che verifichi che i pacchetti siano aggiornati confrontando i due repository. Questo è ciò che facciamo per i nostri clienti di servizi gestiti.


Un'altra domanda relativa agli aggiornamenti dei pacchetti:

ho notato che la versione di OwnCloud sullo store non è aggiornata. Quindi ho creato il pacchetto e ho aggiunto una funzione `update_package()` che aggiorna il codice sorgente se non è già aggiornato all'interno del pacchetto. Per chi usa ownCloud, ecco la funzione che recupera l'ultima versione del software dal sito web ufficiale: https://owncloud.org/download/ :
[...]

Questo funziona bene in PyScripter. Facendo clic con il pulsante destro del mouse su `update-package-source` e selezionando "Esegui", aggiorna correttamente il software nella cartella e la versione nel file `control`. Dopodiché basta eseguire `build-upload` e il gioco è fatto. Il problema è che non è possibile farlo direttamente dalla console. Forse non ho capito come fare; correggetemi se sbaglio.
In effetti, la console non aggiorna i pacchetti.

Per un'alternativa un po' "brutta", potrei includere l'aggiornamento del pacchetto all'inizio della funzione install() dopo aver verificato se la versione su Internet è superiore a quella del mio pacchetto; non l'ho ancora provato, ma non mi sembra molto adatto.
Si tratta innanzitutto di un'alternativa assolutamente sconsigliata e contraria al funzionamento del WAPT.
Infatti, se si distribuisce il pacchetto utilizzando la funzione "update-package" nel programma di installazione, ogni macchina scaricherà l'eseguibile da Internet. Questo presenta due problemi:
  • 1. La larghezza di banda che sarà ampiamente utilizzata
  • 2. Mancanza di controllo su ciò che è installato sul computer. Immagina un problema di integrità del file scaricato (corrotto o infetto da virus).
Inoltre, in questo caso, tra il momento in cui importi il ​​pacchetto nel tuo repository privato e il momento in cui l'eseguibile viene scaricato, potrebbe esserci una differenza di versione... Il report dell'inventario dei pacchetti sarà quindi impreciso!

La funzione 'update-package' consente di risparmiare tempo quando si aggiorna il pacchetto.

Buonasera

Re: Il principio degli aggiornamenti dei pacchetti?

Pubblicato: 19 luglio 2018 - 16:48
di tsunyan
Quando aggiorniamo un software, è necessario importarlo sul server WAPT. È possibile creare uno script che verifichi che i pacchetti siano aggiornati confrontando i due repository. Questo è ciò che facciamo per i nostri clienti di servizi gestiti.
Sì, capisco, per sapere se dobbiamo aggiornarci riguardo al deposito pubblico.

In effetti, la console non aggiorna i pacchetti.
Si tratta di una funzionalità che verrà implementata in futuro?

Questa è principalmente un'alternativa fortemente sconsigliata e contraria al funzionamento di WAPT.
Infatti, se si distribuisce il pacchetto con la funzione "update-package" nell'installer, significa che ogni macchina scaricherà l'eseguibile da Internet. Ciò presenta due problemi:
1. La larghezza di banda verrà utilizzata in modo eccessivo.
2. Non c'è alcun controllo su ciò che viene installato sulla macchina. Immaginate un problema con l'integrità del file scaricato (corruzione o virus).
Inoltre, in questo caso, potrebbe esserci una differenza di versione tra il momento in cui si importa il pacchetto nel repository privato e il momento in cui l'eseguibile viene scaricato... L'inventario dei pacchetti risulterà quindi impreciso!

La funzione "update-package" consente di risparmiare tempo durante l'aggiornamento del pacchetto.
Questo è quello che pensavo, non era una buona idea. Immagino di poter automatizzare l'aggiornamento di tutti i pacchetti con uno script batch o PowerShell.

Grazie per queste spiegazioni.

Re: Il principio degli aggiornamenti dei pacchetti?

Pubblicato: 19 luglio 2018 - 21:59
di vcardon
tsunyan ha scritto: 19 lug 2018 - 16:48Questa è una funzionalità che verrà implementata in futuro?
Una caratteristica del genere è altamente indesiderabile perché l'amministratore del parco è responsabile di ciò che recupera da Internet e di ciò che distribuisce nel suo parco.

Deve verificare che ciò che utilizza sia sicuro.

Vi lascio tracciare un parallelo con questo articolo che descrive una tragedia recente:

http://www.lefigaro.fr/international/20 ... parfum.php

Sinceramente.

Vincenzo

Re: Il principio degli aggiornamenti dei pacchetti?

Pubblicato: 19 luglio 2018 - 22:35
di sfontenau
tsunyan ha scritto: 19 lug 2018 - 16:48 È quello che pensavo, non era una buona idea. Suppongo di poter quindi automatizzare l'aggiornamento di tutti i pacchetti con uno script batch o PowerShell.
Perché non eseguire un pacchetto di aggiornamento ogni notte? Ma come sottolinea Vincent, questo non è consigliabile per ovvi motivi di sicurezza. Il software deve essere verificato da un essere umano prima di essere installato su un'intera rete.

In effetti, un editore può essere compromesso, ad esempio:

CCleaner: https://www.generation-nt.com/ccleaner-...51839.html

Oppure, ad esempio, di recente nel caso di PDF Creator: https://landingpage.pdfforge.org/domain/it

In questo tipo di situazione, si pianta automaticamente un intero parco... :rotolo: Danno ...

Una buona soluzione sarebbe, nella peggiore delle ipotesi, quella di eseguire un pacchetto di aggiornamento ogni notte ma spingere il nuovo pacchetto in una fase di maturità: VALIDATION-WAIT

Non ti resta che testare il software

Re: Il principio degli aggiornamenti dei pacchetti?

Pubblicato: 20 luglio 2018 - 13:10
di tsunyan
Grazie per questi consigli e le risposte rapide @vcardon @sfonteneau.