Come posso velocizzare l'installazione e la disinstallazione del pacchetto MSI?


14

Durante l'installazione e la disinstallazione dei pacchetti di Windows Installer o dei file MSI come vengono chiamati, l'avanzamento dell'installazione appare significativamente più lento rispetto ad altri pacchetti di installazione.

Perché è così, e cosa posso fare per accelerare le cose ?


1
Che ne sai, sono immediatamente sotto votato per aver cercato di fornire alcuni consigli pratici e tecnici dal mondo della distribuzione al mondo dell'amministrazione del sistema. I consigli in questo thread sono sia logicamente che tecnicamente validi al momento della stesura. Critiche costruttive benvenute.
Stein Åsmul,

In sostanza hai scritto un articolo su alcuni aspetti della tecnologia MSI. Fantastico, immagino. Come amministratore di sistema, non ho mai avuto davvero bisogno di risolvere il problema di "Le mie installazioni di software sono così lente".
mfinni,

Questa è una risposta aggiornata a una domanda che ho visto più volte su questo sito e su altri siti di scambio di stack.
Stein Åsmul,

3
@mfinni - non significa che non sia in tema però. Ci sono molti problemi che vedo su questo sito che non ho riscontrato.
Mark Henderson

Stava chiedendo perché fosse stato votato verso il basso senza commentare. Non ho votato, ma ho dato una risposta che ho visto come una possibile ragione per cui.
mfinni,

Risposte:


15

Riepilogo rapido

  • Proprietà necessarie per la velocità da modificare:
  • Il software di sicurezza può essere sospeso per accelerare le installazioni.
    • Prova a disabilitare durante l'installazione: scansiona il tuo programma di installazione su virustotal.com .
  • Prova a eseguire da un'immagine amministrativa ( informazioni alternative ) (non è necessario estrarre il file).
    • L'esecuzione da un'immagine amministrativa locale sarebbe più veloce.
    • La rete ad alta latenza potrebbe rallentare l'installazione se si utilizza un'immagine amministrativa di rete?
      • Sovraccarico potenzialmente elevato per file (file di piccole dimensioni).
      • Il download di un singolo CAB potrebbe essere più veloce (il controllo dei virus potrebbe richiedere molto tempo qui)?
  • Il ripristino del sistema può essere disabilitato a livello globale sulla macchina (non solo tramite MSIFASTINSTALL).

Informazioni di base

Gran parte della lentezza di una sessione di Windows Installer è dovuta alle sue capacità di rollback . Innanzitutto crea un punto di ripristino prima dell'installazione o della disinstallazione (purché il ripristino del sistema non sia stato disabilitato). Quindi eseguirà il backup di tutti i file e le chiavi di registro interessati sia durante la disinstallazione che per l'installazione per garantire che il sistema possa essere ripristinato al suo stato originale in caso di errore. Le versioni successive di Windows Installer offrono modi per disabilitare parte di questa complessità e accelerare le cose. Vedi le informazioni tecniche di seguito.

Un altro fattore di velocità è che tutti i componenti e le funzionalità dell'MSI saranno registrati nel registro . Ciò comporta un certo sovraccarico , ma è necessario per ottenere importanti vantaggi in termini di implementazione aziendale e amministrazione del sistema . Nessun'altra tecnologia di implementazione offre questo livello di controllo.

I file MSI di grandi dimensioni con file di origine incorporati potrebbero richiedere molto tempo per estrarre i file del programma di installazione nella cartella temporanea. Questo a volte può essere il più grande collo di bottiglia di tutti. Si consiglia di eseguire un'installazione dell'amministratore per estrarre i file di origine da tale pacchetto in modo che appaiano fianco a fianco con il file MSI stesso, eliminando la necessità di estrarre i file localmente su ogni macchina e quindi risparmiando tempo di distribuzione. Ecco un altro articolo che descrive l' estrazione dei file dai pacchetti MSI in termini semplici .


Informazioni tecniche


AGGIORNAMENTO (febbraio 2018): è possibile impostare una proprietà denominata FASTOEM in circostanze molto speciali (vedere il contenuto collegato) al fine di accelerare la distribuzione. Non l'ho mai provato, ma vale la pena leggerlo. Dubito che riuscirai a usarlo in modo efficace, ma potrebbe valere la pena provarlo.


L'aggiornamento più recente a Windows Installer al momento della scrittura, Windows Installer 5 (disponibile su Windows Server 2012, Windows 8, Windows Server 2008 R2 o Windows 7), presenta una nuova proprietà MSIFASTINSTALL che può essere utilizzata per accelerare l'installazione di un grande pacchetto MSI . Vedi il link sopra per valori validi. Vorrei suggerire 3 per nessun punto di ripristino e solo FileCosting (il processo di determinazione dei requisiti di spazio su disco). O 7 per ridurre anche la frequenza dei messaggi di avanzamento.

Il normale " costing " presenta parecchi calcoli e calcoli di funzionalità, componenti, dischi e registri tra ciò che esiste sul sistema e ciò che viene installato. La maggior parte di questo è raramente necessario secondo me (lo spazio su disco è generalmente abbondante sui PC client - e nella realtà del 2018 con un disco SD più piccolo il problema di spazio potrebbe essere riemerso ...), ma è ovviamente più sicuro lasciarlo pieno corsa costosa.

msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3

È anche possibile impostare la proprietà DISABLEROLLBACK per disabilitare il supporto del rollback nel programma di installazione MSI. Consiglio vivamente di non usarlo a meno che non stia mettendo in scena un PC nuovo. Questo è un caso speciale in cui puoi ricominciare da capo se qualcosa fallisce. Per un computer in uso reale non consiglierei di abilitare questa proprietà.

L'ironia è che la disabilitazione del rollback accelererà maggiormente le cose se si esegue un enorme pacchetto di aggiornamento che sostituisce molti file o qualsiasi disinstallazione di grandi dimensioni (poiché una disinstallazione sposta tutti i file rimossi in un'area di rollback). Potrebbe essere abbastanza significativo, ma non sicuro. È sufficiente impostare questa proprietà dalla riga di comando: msiexec.exe / I "D: \ winzip112.msi" / QN MSIFASTINSTALL = 3 DISABLEROLLBACK = 1

Installazione amministrativa

Infine, come indicato sopra nelle informazioni di base, eseguire un'installazione amministrativa del file MSI per estrarre i file in modo che l'estrazione non avvenga localmente su ogni macchina. Ciò presuppone che ci si trovi su una rete piuttosto veloce e che la copia del file avvenga senza troppi ritardi. Suppongo che una rete wireless ad alta latenza potrebbe rallentare le cose con i piccoli file estratti che devono essere copiati uno per uno. Esegui l'installazione dell'amministratore semplicemente passando un / a al file di installazione:

setup.exe / a

o

msiexec / a "D: \ winzip112.msi"

Quindi è necessario seguire le istruzioni e selezionare un percorso di estrazione per i file. Vedi superuser.com per un thread che discute questa funzione.


Alcuni collegamenti :

Velocità:


non è quello MSIFASTINSTALL? senza ERsulla coda.
n611x007

Ho aggiunto la proprietà MSIFASTINSTALL = 3 nel mio progetto Wix. Tuttavia, non c'è differenza nel tempo di installazione. <ID proprietà = "MSIFASTINSTALL" Valore = "3" /> Se ho fatto qualcosa di sbagliato?
Kathir Subramaniam,

1
Migliora principalmente il tempo di "decollo" per un MSI - la creazione di un punto di ripristino del sistema può essere lenta. Aiuta anche il calcolo dei requisiti di spazio, ma l'installazione stessa non è molto più veloce. Aspetta mentre trovo un'altra risposta a cui potrei inviarti.
Stein Åsmul il


Come vedrai: nessun proiettile d'argento, ma alcune modifiche che puoi apportare. Quanto è grande la tua configurazione?
Stein Åsmul,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.