Sotto Windows, in particolare le versioni precedenti, era comune per i programmi archiviare i file di configurazione e i dati non costanti nella loro C:\Program Filesdirectory. Questo deriva dal modo in cui i programmi venivano normalmente installati ed eseguiti in DOS per utente singolo, non in rete, senza permesso di file.
Dal punto di vista della sicurezza, questa è una cattiva idea. I luoghi in cui risiede il codice eseguibile dovrebbero essere separati dai dati modificabili. In questo modo è più semplice applicare le autorizzazioni dei file appropriate per impedire la modifica dei file binari installati da parte di utenti non autorizzati. Allo stesso modo anche le directory delle librerie che possono essere aggiornate separatamente dagli eseguibili principali dovrebbero trovarsi in una directory separata.
Con l'avvento dei fastidi di Vista e UAC, questa tradizione sta finalmente iniziando a perdere seriamente trazione.
UNIX e Linux, essendo un sistema multiutente da molto prima, avevano la tendenza a separare directory eseguibili da altre directory molto prima, poiché era necessario impedire agli utenti diversi da root di modificare i binari installati. È anche il motivo /usrper cui, a /sbinvolte, sono anche partizioni separate: un amministratore particolarmente attento alla sicurezza può montare quelle partizioni in sola lettura e rimontarle in lettura / scrittura quando deve avvenire un'installazione / disinstallazione.
I pacchetti vengono generalmente installati da un gestore pacchetti. Ci sono vari gestori di pacchetti, come aptitude(Debian e distribuzioni derivate), yum(Redhat e distribuzioni derivate), pacman(dimentica quale distro è ...) e altri.
Il gestore pacchetti consente di sfogliare i repository, scaricare, installare, eseguire query e rimuovere software, in modo molto simile a un "app store" sofisticato (e gratuito). Si assume la responsabilità di garantire che le dipendenze siano prese in carico e di rintracciare ciò che è attualmente installato.
Di solito il gestore pacchetti consentirà anche le stesse operazioni su un pacchetto scaricato manualmente al di fuori di qualsiasi repository. Gli strumenti sono disponibili anche se vuoi crearne uno tuo dal software che hai creato o compilato da solo.
Poiché il pacchetto stesso NON è un file eseguibile, non è necessario eseguire un eseguibile non attendibile che non si sa davvero cosa fa. (Windows sta finalmente arrivando con gli aggiornamenti distribuendo .msu'invece di .exe' - ma .msisono in giro da un po '...)
rpm, è possibile utilizzarerpm -q --whatprovidesper trovare il nome del pacchetto per un determinato file e quindirpm -q -aper scoprire quali file è installato un pacchetto.