[RISOLTO] WAPT.download_upgrades() non ha avuto alcun effetto

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
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

23 luglio 2025 - 16:16

Buongiorno,

Nel pacchetto y, devo usare il metodo WAPT.download_upgrades() per aggiornare un altro pacchetto x (aggiornare alla versione n+1 del pacchetto x installato nella versione n) e poi installarlo con WAPT.install(x).

Tuttavia, questo non funziona. Durante l'installazione del pacchetto y (nessun errore, il pacchetto si installa correttamente), la macchina non scarica l'ultima versione (n+1) del pacchetto x e quindi non la installa. Rimane con la versione n del pacchetto x. Non capisco perché, dato che la versione n+1 del pacchetto x è disponibile sul server WAPT e che l'agente della macchina è configurato correttamente per recuperare i pacchetti dal server WAPT. Non è nemmeno un problema di maturità del pacchetto x (il problema si verifica indipendentemente dalla sua maturità). Inoltre, se seleziono la macchina nella console, poi clicco su "Verifica aggiornamenti" e seleziono "E scarica pacchetti", la macchina scarica la versione n+1 del pacchetto x. (Qui sotto, questo "pacchetto x" è "col73-xmind"; voglio aggiornarlo e installarlo durante l'installazione di un altro pacchetto.)

Ecco le righe di codice corrispondenti:

Codice: Seleziona tutto

 
    WAPT.download_upgrades()
    for p in WAPT.installed(include_errors=True):
        if p.package == 'col73-xmind':
            WAPT.install('col73-xmind')
  
Queste stesse righe di codice funzionavano già prima (l'avevo già fatto in questo modo con un altro pacchetto un anno fa senza problemi)

Da dove potrebbe derivare il problema?
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

24 luglio 2025 - 10:19

Ho aggiunto alcune righe di codice per eseguire i controlli e, in effetti, il pacchetto x è presente nella versione n (in realtà la 16), ma stranamente, la versione n+1 (in realtà la 17) disponibile sul server non viene visualizzata, scaricata e installata, secondo il log. Invece, wapt scarica nuovamente e reinstalla la versione n (16) :| come mostrato nel registro sottostante.
Tuttavia, come affermato nel mio messaggio precedente, quando controllo gli aggiornamenti dei pacchetti per la workstation utilizzando la console e scarico i pacchetti, la workstation vede e scarica effettivamente la versione n+1 (17)!?

Codice: Seleziona tutto

    WAPT.download_upgrades()
    for p in WAPT.installed(include_errors=True):
        if p.package == 'col73-xmind':
            print("paquet col73-xmind détecté")
            version_paquet=(p.version).split("-")[1]
            print('version du paquet wapt de xmind installé=%s - tentative de maj du paquet"' % version_paquet)
            WAPT.install('col73-xmind',force=True)
 
Di seguito è riportato il registro di installazione del pacchetto col73-xmind8, che contiene le righe di codice precedenti:

pacchetto col73-xmind rilevato,
pacchetto xmind wapt installato versione=16 - tentativo di aggiornamento del pacchetto"
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 262144 / 161672722 (0%) (15,62 Mb/s)
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 68419584 / 161672722 (42%) (64,22 Mb/s)
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 138936320 / 161672722 (86%) (65,72 Mb/s)
col73-xmind_3.7.2.0-16_windows_0f4137ed1502b5045d6083aa258b5c42_PROD_9757a8c0d5a4e8d25c3a08543880461d.wapt: 161672722 / 161672722 (100%) (65,78 Mb/s)
Installazione di XMind
Installazione: xmind-8-update2-windows.exe (3.7.2.0)
Copia della cartella XMind (AppData) in C:\Sources\XMind per l'installazione futura...
Copia completata con successo
Installazione completata con successo
Copia della cartella dell'applicazione portatile XMind8
Pacchetto wapt xmind installato versione=16
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Avatar utente
sfontenau
Esperto WAPT
Messaggi: 2312
Registrato: 10 luglio 2014 - 23:52
Contatto:

24 luglio 2025 - 10:24

Buongiorno
Se controllo gli aggiornamenti dei pacchetti per la workstation scaricando i pacchetti, la workstation vede e scarica correttamente la versione n+1 (17)!?
Quindi nel codice stai facendo un aggiornamento? WAPT.update()
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

24 luglio 2025 - 11:43

Ciao Simon,

no, non avevo mai usato WAPT.update() prima.

Eseguendolo prima di WAPT.upgrades() ora funziona, grazie!

Saluti
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Avatar utente
dcardon
Esperto WAPT
Messaggi: 1908
Registrazione: 18 giugno 2014 - 09:58
Ubicazione: Saint Sébastien sur Loire
Contatto:

25 luglio 2025 - 15:27

Ciao Brice,

dovresti fare attenzione a non usare `download_upgrade` o `update` in una funzione `install`, perché in molti casi, quando il computer si spegne durante l'installazione, non ci sarà connessione di rete (VPN, Wi-Fi, 802.1x, ecc.) e il download, e quindi l'installazione, falliranno.

Cordiali saluti,

Denis
Denis Cardon - Tranquil IT
Condividi le tue esperienze su WAPT! Inviaci gli URL dei tuoi blog e articoli nella "La tua opinione del forum e li pubblicheremo sul di WAPT
Avatar utente
vcardon
Esperto WAPT
Messaggi: 272
Registrazione: 06/10/2017 - 22:55
Posizione: Nantes, Francia

25 luglio 2025 - 19:08

In effetti, è meglio inserire il secondo software come dipendenza del primo nel file di controllo: è molto più pulito e meno soggetto a problemi.
Vincent CARDON
Tranquillo IT
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

29 luglio 2025 - 09:37

Ciao Denis e Vincent,

grazie per i vostri consigli. Questo caso è un po' insolito. In realtà, non posso e non voglio rendere questo pacchetto una dipendenza perché ha un nome errato, la sua funzione uninstall() non funziona (restituisce un errore) e non può essere disinstallato così com'è. Quindi voglio sostituirlo con un altro pacchetto, y. Pertanto, sto usando WAPT.update() e WAPT.download_upgrades() per aggiornare il pacchetto difettoso e, nello stesso pacchetto sostitutivo, y, disinstallo il pacchetto x in un secondo momento, dopo l'aggiornamento, usando WAPT.remove(pacchetto x), dato che la funzione di disinstallazione del pacchetto x funziona correttamente.

Ho già rimosso questo pacchetto da tutte le macchine, quindi non verrà reinstallato una volta completata la disinstallazione.

Questo mi permette di automatizzare la sua sostituzione durante l'installazione del nuovo pacchetto corretto. In ogni caso, sarebbe troppo noioso dover disinstallare manualmente il pacchetto x su centinaia di macchine dopo un aggiornamento (le macchine devono anche essere accese affinché questa operazione funzioni). Quindi sto approfittando dell'installazione del nuovo pacchetto sostitutivo per automatizzare questa procedura. L'ho già fatto un anno fa con un altro pacchetto che presentava lo stesso problema e tutto è andato liscio. Su centinaia di macchine, non ci sono stati problemi con il download della nuova versione del pacchetto. Il download viene quindi eseguito da un repository secondario sulla rete locale.

Ma pensavo che quando il sistema si spegne, waptexit iniziasse a scaricare gli aggiornamenti prima di installarli?!

Cordiali saluti,
Brice
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Avatar utente
vcardon
Esperto WAPT
Messaggi: 272
Registrazione: 06/10/2017 - 22:55
Posizione: Nantes, Francia

1 agosto 2025 - 20:01

Ma pensavo che quando Waptexit si è spento, avrebbe iniziato a scaricare gli aggiornamenti prima di installarli?!
No, tutto deve essere stato scaricato prima di avviare waptexit perché non possiamo conoscere lo stato di disponibilità della rete quando il computer è spento.

Ora che conosciamo meglio il tuo caso d'uso, quello che avresti potuto fare è correggere la funzione di disinstallazione del pacchetto di dipendenza, prima inviare la correzione e poi avrebbe funzionato bene, credo, con un'ulteriore correzione al file "control" del tuo pacchetto principale con "depends: newpackage" e "conflicts: oldpackage".
Vincent CARDON
Tranquillo IT
brice73
Messaggi: 42
Iscrizioni: 13 febbraio 2023 - ore 8:05

5 agosto 2025 - 15:37

Ciao Vincent,
Ora che conosciamo meglio il tuo caso d'uso, quello che avresti potuto fare è correggere la funzione di disinstallazione del pacchetto di dipendenza, prima inviare la correzione e poi avrebbe funzionato bene, credo, con un'ulteriore correzione al file "control" del tuo pacchetto principale con "depends: newpackage" e "conflicts: oldpackage".
In effetti, sembra possibile. Pensavo che le macchine sarebbero rimaste in modalità errore perché, se la nuova versione del pacchetto non fosse stata aggiornata dalla macchina, la sua precedente disinstallazione (tramite il conflitto) non sarebbe riuscita e il nuovo pacchetto sostitutivo non si sarebbe installato, ma avrebbe restituito un errore. A pensarci bene, in realtà, dovrebbe essere solo temporaneo, finché le macchine non avessero aggiornato il pacchetto la cui funzione di disinstallazione non funzionava correttamente.
WAPT Enterprise 2.6.1.17765
Server WAPT su Debian 13
Amministrazione/creazione di pacchetti su Windows 11/10
Avatar utente
vcardon
Esperto WAPT
Messaggi: 272
Registrazione: 06/10/2017 - 22:55
Posizione: Nantes, Francia

5 agosto 2025 - 19:43

La funzione di disinstallazione può essere corretta con una versione più recente del pacchetto, che è più semplice e affidabile di quello che stai cercando di fare.

L'importante è che tu riesca a fare quello che vuoi con WAPT.
Vincent CARDON
Tranquillo IT
Bloccato