Pagina 1 di 1

[RISOLTO] Installazione della versione precedente di un pacchetto

Pubblicato: 19 marzo 2025 - 11:56
di VincentUCA
Versione WAPT 2.6

Buongiorno,
Mi scuso se è già stato aperto un argomento simile, non sono riuscito a trovarlo.
Sto sviluppando un pacchetto software il cui programma di installazione non rimuove la vecchia versione. Quindi ho aggiunto un pezzo di codice per farlo. Ma a scopo di test, vorrei poter reinstallare la vecchia versione. Credo di averlo già fatto, ma non ho preso appunti e da allora ho dimenticato come si fa.
Ho trovato una sezione nella documentazione che afferma:
Ogni comando che accetta il nome di un pacchetto come parametro può accettare anche il package_uuid univoco del pacchetto come parametro (wapt-get install, wapt-get forget, ecc.). L'utilizzo di un GUID consente di specificare un pacchetto univoco senza ambiguità circa la sua architettura o versione. Il package_uuid è elencato nell'output di wapt-get list e wapt-get search. Ad esempio:
Quindi ho fatto un

Codice: Seleziona tutto

wapt-get search monpaquet
per recuperare l'ID del pacchetto nella versione che mi interessa.
Ma poi quando eseguo il comando

Codice: Seleziona tutto

wapt-get install c65ecfc2-ed87-428a-abc7-1646497ee71e
Ricevo il seguente errore:
Utilizzo del file di configurazione: C:\Program Files (x86)\wapt\wapt-get.ini
install utilizzando i pacchetti WAPT c65ecfc2-ed87-428a-abc7-1646497ee71e

Risultati:
Critico:
=== Pacchetti non disponibili ===
c65ecfc2-ed87-428a-abc7-1646497ee71e [x64_fr_PROD,DEV,PREPROD]
Dove sto sbagliando?
Grazie in anticipo per la risposta.
Sinceramente.
Vincenzo

Re: Installazione della versione precedente di un pacchetto

Pubblicato: 20 marzo 2025 - 09:42
di dcardon
Ciao Vincent,

È possibile forzare l'installazione di una versione specifica utilizzando la seguente sintassi:

Codice: Seleziona tutto

wapt-get install "tis-monpaquet(=2.5.3)"
Tuttavia, la versione "pinning" non è memorizzata nell'agente e pertanto il pacchetto verrà aggiornato al prossimo aggiornamento wapt-get.

Sinceramente,

Denis

Re: Installazione della versione precedente di un pacchetto

Pubblicato: 20 marzo 2025 - 19:46
di vcardon
Ciao, per dare seguito al commento di Denis, se desideri una versione di un software senza che si aggiorni, duplica la versione che ti interessa e rinomina il pacchetto con il numero di versione del software.

Ad esempio: il pacchetto tis-firefox per la versione 136.0.2 diventerebbe tis-firefox-pinned-136.0.2.

Re: Installazione della versione precedente di un pacchetto

Pubblicato: 21 marzo 2025 - 11:34
di VincentUCA
Ciao a tutti,
Grazie per i tuoi preziosi consigli. Ho testato con successo l'installazione di una versione precedente del mio pacchetto. Tuttavia, la parte aggiunta da WAPT non deve essere omessa dal numero di versione, altrimenti non funzionerà. Per usare l'esempio precedente, si presenta così:

Codice: Seleziona tutto

wapt-get install "tis-monpaquet(=2.5.3-2)"
Suggerisco di rimuovere l'installazione tramite l'UUID di un pacchetto dalla documentazione se non funziona più e di aggiungere questo metodo tramite il "pinning" della versione, che non sono riuscito a trovare altrove.

Per essere sincero, il pacchetto che sto cercando di sviluppare è per il software Chimera. Nel repository tranquil.it esiste già un pacchetto con il codice per disinstallare le versioni precedenti, ma ho notato due cose.

Il primo problema è che il numero di versione del software Chimera non è registrato nel registro di Windows. Pertanto, il codice del pacchetto è il seguente:

Codice: Seleziona tutto

for to_uninstall in installed_softwares("UCSF Chimera"):
        if Version(to_uninstall["version"]) < Version(last_version):
Verificare sempre la condizione:

Codice: Seleziona tutto

if 0.0.0.0 < N° de la dernière version:
Pertanto, indipendentemente dalla versione installata, verrà disinstallata.

Il secondo problema è che la funzione `installed_softwares("UCSF Chimera")` recupera anche la chiave di registro di ChimeraX, anch'essa priva di numero di versione. Questo comporta la disinstallazione di ChimeraX durante il processo di installazione di Chimera.

Ho notato che nella chiave di registro di disinstallazione di Chimera, il numero di versione era indicato nella chiave "DisplayName". Pertanto, ho modificato il codice come segue:

Codice: Seleziona tutto

for to_uninstall in installed_softwares("UCSF Chimera"):
        to_uninstall_version = to_uninstall["name"].split()[-1]
        if Version(to_uninstall_version) < Version(last_version):
            print(f"Removing: {to_uninstall['name']} ({to_uninstall_version})")
Le condizioni testate diventano:

Codice: Seleziona tutto

if 1.18.0.0 <1.19.0.0:
E

Codice: Seleziona tutto

if "ChimeraX"<1.19.0.0:
Poiché ChimeraX non ha il numero di versione incluso in "DisplayName", questa condizione sembra restituire False.

Non è la soluzione più pulita, ma funziona. L'ultima versione di Chimera non viene disinstallata e reinstallata quando il pacchetto viene aggiornato senza modificare la versione del software, e nemmeno ChimeraX viene disinstallato, consentendo la coesistenza di entrambi i pacchetti software. Ammetto che è un po' un cavillo :oops: Perché ora che ho aggiunto la funzione per rimuovere il collegamento sul desktop, non credo che toccherò il codice di questo pacchetto. E normalmente non ha molto senso avere Chimera e ChimeraX installati sulla stessa macchina, ma a quanto pare ci sono funzioni rimosse da Chimera in ChimeraX che sono utili per alcuni utenti.

Grazie ancora per aver risposto alla mia richiesta.
Sinceramente.
Vincenzo

Re: Installazione della versione precedente di un pacchetto

Pubblicato: 21 marzo 2025 - 14:11
di dcardon
Ciao Vincent,

grazie per il feedback. Inoltro il tuo messaggio al team che si occupa dei pacchetti del negozio, in modo che possano risolvere il problema seguendo il tuo suggerimento. :-)

Cordiali saluti,

Denis

Re: Installazione della versione precedente di un pacchetto

Pubblicato: 24 marzo 2025 - 11:10
di italbot
Ciao,

ho appena modificato il codice in modo che una versione di ChimeraX già installata non venga disinstallata insieme a Chimera. In effetti, il controllo della versione non funzionava; ho corretto anche quello.

Grazie per avercelo segnalato.

Cordiali saluti,

Ingrid