Il principio degli aggiornamenti dei pacchetti?

Domande sul packaging WAPT / Richieste e assistenza sui pacchetti Wapt.
Regole del forum
Regole del forum della community
* Supporto in inglese su www.reddit.com/r/wapt
* Supporto della community in francese disponibile su questo forum
* Si prega di anteporre [RISOLTO] al titolo dell'argomento se è stato risolto.
* Si prega di non modificare un argomento contrassegnato con [RISOLTO]. Aprire un nuovo argomento facendo riferimento a quello precedente.
* Specificare la versione di WAPT installata, la versione completa e il numero di build (2.2.1.11957 / 2.2.2.12337 / ecc.) nonché l'edizione Enterprise/Discovery.
* Le versioni 1.8.2 e precedenti non sono più supportate. Le uniche domande accettate relative alla versione 1.8.2 riguardano l'aggiornamento a una versione supportata (2.1, 2.2, ecc.).
* Specificare il sistema operativo del server (Linux/Windows) e la versione (Debian Buster/Bullseye - CentOS 7 - Windows Server 2012/2016/2019).
* Specificare il sistema operativo della macchina di amministrazione/creazione dei pacchetti e della macchina con l'agente problematico, se applicabile (Windows 7/10/11/Debian 11/ecc.).
* Evitare di porre più domande quando si apre una discussione, altrimenti potrebbe essere ignorata. Se ci sono più discussioni, aprirle separatamente, preferibilmente una dopo l'altra e non tutte contemporaneamente (ovvero, non intasare il forum).
* Includere frammenti di codice, screenshot e altre immagini direttamente nel post. I link a Pastebin, Bitly e altri siti di terze parti verranno sistematicamente rimossi.
* Come in qualsiasi forum della community, il supporto è fornito volontariamente dai membri. Se si necessita di supporto commerciale, è possibile contattare il reparto vendite di Tranquil IT al numero 02.40.97.57.55
Bloccato
tsunyan
Messaggi: 3
Registrazione: 18 luglio 2018 - 13:13

18 luglio 2018 - 14:19

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
Ultima modifica di tsunyan il 19 lug 2018 alle 16:58, modificato 1 volta.
Avatar utente
kguerineau
Messaggi: 26
Registrazione: 6 marzo 2018 - 16:28

18 luglio 2018 - 21:58

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
tsunyan
Messaggi: 3
Registrazione: 18 luglio 2018 - 13:13

19 luglio 2018 - 16:48

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.
Avatar utente
vcardon
Esperto WAPT
Messaggi: 272
Registrazione: 06/10/2017 - 22:55
Posizione: Nantes, Francia

19 luglio 2018 - 21:59

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
Vincent CARDON
Tranquillo IT
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

19 luglio 2018 - 22:35

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
tsunyan
Messaggi: 3
Registrazione: 18 luglio 2018 - 13:13

20 luglio 2018 - 13:10

Grazie per questi consigli e le risposte rapide @vcardon @sfonteneau.
Bloccato