# C/Appendice/Strumenti/Installer

C
Copertina Tutti i moduli · Sviluppo
* LinguaggioC/Linguaggio
** PanoramicaC/Linguaggio/Panoramica
** Struttura del linguaggioC/Linguaggio/Struttura del linguaggio
* Variabili, operatori e costantiC/Variabili, operatori e costanti
** VariabiliC/Variabili, operatori e costanti/Variabili
** Operatori aritmeticiC/Variabili, operatori e costanti/Operatori aritmetici
** Operatori sui bitC/Variabili, operatori e costanti/Operatori sui bit
** CostantiC/Variabili, operatori e costanti/Costanti
* Blocchi e funzioniC/Blocchi e funzioni
** Blocchi if e switchC/Blocchi e funzioni/Blocchi if e switch
** Operatori logiciC/Blocchi e funzioni/Operatori logici
** CicliC/Blocchi e funzioni/Cicli
** FunzioniC/Blocchi e funzioni/Funzioni
** mainC/Blocchi e funzioni/main
** LibrerieC/Blocchi e funzioni/Librerie
** RicorsivitàC/Blocchi e funzioni/Ricorsività
* Vettori e puntatoriC/Vettori e puntatori
** VettoriC/Vettori e puntatori/Vettori
** PuntatoriC/Vettori e puntatori/Puntatori
** Interscambiabilità tra puntatori e vettoriC/Vettori e puntatori/Interscambiabilità tra puntatori e vettori
* StringheC/Variabili, operatori e costanti/Stringhe
* Enumerazioni, strutture e unioniC/Enumerazioni, strutture e unioni
** EnumerazioniC/Enumerazioni, strutture e unioni/Enumerazioni
** StruttureC/Enumerazioni, strutture e unioni/Strutture
** UnioniC/Enumerazioni, strutture e unioni/Unioni
* Conversioni di tipoC/Conversioni di tipo
* Lettura e scrittura su fileC/Lettura e scrittura su file
** File di TestoC/Lettura e scrittura su file/File di Testo
** File BinariC/Lettura e scrittura su file/File Binari
* Compilatore e precompilatoreC/Compilatore e precompilatore
** CompilatoreC/Compilatore e precompilatore/Compilatore
** DirettiveC/Compilatore e precompilatore/Direttive
** HeaderC/Compilatore e precompilatore/Header
* VisibilitàC/Visibilità
* Gestione della memoriaC/Gestione della memoria
* Le applicazioni CGIC/Le applicazioni CGI
* Appendice
** Librerie standardC/Appendice/Librerie standard
*** assert.hC/Appendice/Librerie standard/assert.h
*** ctype.hC/Appendice/Librerie standard/ctype.h
*** errno.hC/Appendice/Librerie standard/errno.h
*** float.hC/Appendice/Librerie standard/float.h
*** limits.hC/Appendice/Librerie standard/limits.h
*** locale.hC/Appendice/Librerie standard/locale.h
*** math.hC/Appendice/Librerie standard/math.h
*** setjmp.hC/Appendice/Librerie standard/setjmp.h
*** signal.hC/Appendice/Librerie standard/signal.h
*** stdarg.hC/Appendice/Librerie standard/stdarg.h
*** stddef.hC/Appendice/Librerie standard/stddef.h
*** stdio.hC/Appendice/Librerie standard/stdio.h
*** stdlib.hC/Appendice/Librerie standard/stdlib.h
*** string.hC/Appendice/Librerie standard/string.h
*** time.hC/Appendice/Librerie standard/time.h
** StrumentiC/Appendice/Strumenti
*** InstallerC/Appendice/Strumenti/Installer
** Librerie esterneC/Appendice/Librerie esterne
* Bibliografia
    IndiceC/Indice
Modifica il sommario

# Cos'è l'installer

L'installer è un programma per installare altri programmi e serve a portare agilmente il nostro programma su altri computer. Ogni programma, lo si sarà ormai capito, è costituito dall'eseguibile o dagli eseguibili, dalle librerie, file di configurazione, immagine per la splashscreen oppure file di documentazione. Ognuno dei file necessari ad un programma deve essere posizionato nel posto giusto e questo, specialmente in programmi complessi, rende difficoltosa la diffusione in altri computer se fatto manualmente, con ovvie conseguenze. Spesso poi ci sono differenze, nella posizione dei file o nella compilazione, tra versioni diverse dello stesso sistema operativo o è richiesta l'installazione di altri programmi o aggiornamenti.
Un installer può semplicemente copiare i file nelle posizioni corrette o può compilare il programma direttamente nel sistema in cui va installato adattandolo a questo, può adattare il sistema per il funzionamento con il programma che viene installato.
L'installer può eseguire tutte queste operazioni da solo o adattare l'installazione secondo le specifiche dell'utente, può fornire metodi per l'installazione silenziosa o unattended fondamentale quando si deve installare il programma su molti computer.
Ovviamente esistono diversi installer su diversi sistemi operativi, qui verranno citati solo quelli free.

## Microsoft Windows

Per Microsoft Windows esistono diversi installer come Visual Studio Installer(di casa Microsoft) disponibile con l'IDE Visual Studio, Install Shield e Inno Setup. In questo articolo tratteremo Inno Setup.
Inno Setup è scaricabile da e la documentazione è qui.
Inno Setup funziona tramite script che descrivono l'installazione in ogni sua arte, viene fornito con un piccolo IDE in cui è possibile scrivere lo script, compilare e fare il debug dell'installer