Un installatore interrompe il processo di distribuzione di parti complesse di infrastruttura software , che di solito è contenuto in un archivio, attraverso una comoda interfaccia utente autosufficiente .
Questa interfaccia utente può essere grafica o basata sul testo che viene emesso su una riga di comando come la shell unix (ad esempio bash). Nel caso di programmi di installazione grafica, molto spesso viene utilizzato un cosiddetto install-bootstrapper, in quest'ultimo caso, script di installazione che possono essere script bash, script batch Microsoft o qualsiasi altro linguaggio di script eseguito su una riga di comando.
Nel caso più semplice, un'applicazione è semplicemente un file eseguibile, con il sistema operativo che sa cosa fare del file per eseguirlo. Il file dell'applicazione può risiedere in una cartella con sottocartelle e altri file ausiliari, impacchettati in un archivio . In questo caso potrebbe non essere necessario alcun programma di installazione.
Per software complessi , potrebbero essere desiderabili intere piattaforme software e una stretta integrazione con l'infrastruttura del sistema operativo sottostante , ad esempio per far rispettare il copyright di un prodotto software.
Molti programmi di installazione su Windows forniscono un flag /e
o /extract
. ad es. setup.exe /e
per consentire l'estrazione del contenuto dell'archivio senza che il programma di installazione esegua il suo script di installazione. Di recente ho dovuto fare proprio questo .
Verso la portabilità
Gli installatori sono quasi diventati una norma per la fornitura di software professionale, non importa quanto siano semplici le risorse software sottostanti. Con un numero crescente di utenti esperti di computer e il desiderio di migrare le proprie applicazioni da un desktop all'altro, il software portatile , spesso distribuito in un semplice archivio, sta diventando sempre più popolare.
( Non so quanto tempo ho dedicato agli installatori, ma è decisamente all'ordine dei giorni. )
Le attività che il programma di installazione può gestire sono:
- disimballaggio (spesso utilizzando archivi esotici ad alta compressione)
- garantendo i requisiti hardware di sistema
- garantendo sufficiente spazio sul disco rigido
- garantire i requisiti di runtime della piattaforma software (ad esempio "ridistribuibili")
- verifica aggiornamenti software più recenti
- scaricare il software da un repository remoto
- creazione e / o aggiornamento di file e cartelle di programma
- creare file di configurazione, voci di registro o variabili di ambiente
- installare driver software, montare o smontare dispositivi
- aumentare l'accessibilità per gli utenti di tutti i giorni, spiegando i passaggi dell'installazione, creando collegamenti, collegamenti
- promuovere il proprio software tramite segnalibri, ecc ...
- creare incentivi per l'utente all'avvio effettivo del software, presentando i punti chiave del software durante l'installazione, slide by slide
- creare entrate aggiuntive, attraverso il raggruppamento di software
- configurare i moduli del kernel e far funzionare automaticamente i componenti (ad es. demoni, servizi di Windows)
- patching automatico del software
- impostazione delle autorizzazioni per cartelle, file e utenti
- la creazione di GUID per accoppiare il software a un'istanza di installazione specifica e, ad esempio, impedire la portabilità
... Se riesci a pensare ad altri punti, fammi sapere e li incorporerò.