Zero Install
# Zero Install

Zero Install è un sistema per l'esecuzione di applicazioni su sistemi Linux e Unix-like in genere ed è il gestore di pacchetti predefinito del ROX Desktop. Caratteristica peculiare è che l'installazione del software avviene in modalità trasparente all'utente, cioè lo scaricamento del pacchetto, la risoluzione delle dipendenze e l'installazione vengono gestiti in modo autonomo da Zero Install.

## Modalità di funzionamento

I programmi vengono identificati con un URI. Per editare un file, per esempio, non si userà "vim testo.txt" ma "http://www.vim.org/vim testo.txt".

La prima volta che l'utente accede ad un programma, Zero Install scarica il pacchetto e le dipendenze necessarie da internet e (se così impostato) lo registra nella cache per evitare di scaricarlo nuovamente agli accessi successivi. I pacchetti solitamente vengono distribuiti in formato application directory, cioè in un'unica directory contenente tutti i file dell'applicazione, documentazione e sorgenti compresi. L'accesso al pacchetto comporterà l'esecuzione del programma in esso contenuto.

Originariamente Zero Install era composto da due parti distinte: un modulo per il kernel linux, che simulava un file system virtuale (chiamato lazyfs) che conteneva tutti i pacchetti disponibili, e Zero Install, un processo demone che scaricava il software su richiesta. Il sistema è poi stato sostituito da un insieme di tool sviluppati in Python e PyGTK, chiamato Injector, che attinge ai pacchetti da un repository decentralizzato.

Questo sistema è progettato per convivere pacificamente con gli altri sistemi di gestione dei pacchetti e può quindi venire installato in parallelo al sistema di gestione pacchetti predefinito.

## Caratteristiche

L'approccio inusuale adottato da Zero Install comporta dei vantaggi e degli svantaggi:

* non è necessario l'accesso di root per poter usare nuovi programmi: i pacchetti vengono installati in directory utente;
* ogni installazione è locale all'utente che ha richiamato il relativo programma: possono convivere più versioni dello stesso programma associate ad utenti diversi;
* poiché non è richiesto l'accesso di root può rivelarsi difficile impostare delle restrizioni supplementari agli utenti (un tipico esempio è un sistema basato su kiosk);
* l'uso di URI per il richiamo di programmi non è intuitivo: l'impostazione di segnalibri con 0alias può comunque mitigare il problema.
