Indipendentemente dall'organizzazione scelta, renderà alcune cose più facili e alcune più difficili.
Organizzare i file per tipo, il modo Unix (in bin
, man
, lib/python
, ...), rende più facile da usare file. Se vuoi eseguire un comando, sai dove trovarlo, indipendentemente dal pacchetto che lo fornisce. Se vuoi cercare nella documentazione, è tutto in un unico posto. Se alcuni programmi forniscono un modulo di evidenziazione della sintassi di Vim, una funzione di completamento zsh o collegamenti Python, il file pertinente si troverà in un posto dove vim / zsh / python può trovarlo.
Unix organizza anche i file secondo schemi di utilizzo. I file di configurazione entrano /etc
, i file che non cambiano durante il normale funzionamento entrano /usr
e i file che cambiano automaticamente entrano /var
. I dati dell'utente vanno sotto /home
. Questo è molto utile per la gestione della configurazione (gestisci cosa c'è dentro /etc
più l'elenco dei pacchetti installati). È anche utile definire le strategie di backup: ciò che è dentro /etc
ed /home
è di fondamentale importanza, mentre ciò che è dentro /usr
può essere facilmente scaricato di nuovo.
Il costo principale del modo Unix è che l'installazione di un software è distribuita in molte directory. Tuttavia, i moderni sistemi unix dispongono comunque di gestori di pacchetti; la gestione dei file in molte directory non è di gran lunga la cosa più complessa che fanno (tenere traccia delle dipendenze è molto utile e più difficile).
Contrastalo con Windows. Windows è iniziato senza la gestione dei pacchetti e ogni applicazione ha creato la propria directory da qualche parte. Tutti i file normalmente si troverebbero in quella directory: programmi, dati statici, dati utente, ... Tranne qualche volta per le librerie i programmi che cadono in una directory di sistema comune senza riguardo ai conflitti ("inferno DLL"). Nel tempo, Windows è diventato multiutente, richiedendo la separazione delle directory degli utenti dalle directory di sistema. Windows ha anche creato un posto centrale per i file di configurazione (di Unix /etc
) e alcuni dati di sistema (di Unix/var
), il registro. Questo è più un artefatto storico, in gran parte a causa della mancanza di gestione dei pacchetti e della storia precedente come sistema a utente singolo. L'approccio di Windows ha molte limitazioni: non consente ai pacchetti software di interagire facilmente. Ad esempio, la maggior parte dei software installati non finisce nel percorso di ricerca dei comandi predefinito, quindi interagisce male con qualsiasi forma di scripting. Gli installatori in genere forniscono un'icona di menu come un caso speciale, rilasciata in una directory di sistema separata (alla Unix!).
Una limitazione dell'approccio Unix è che non consente facilmente la coesistenza di più versioni di un pacchetto, il che è particolarmente problematico durante l'aggiornamento del pacchetto. Un modo per ottenere il meglio da entrambi i mondi sarebbe quello di decomprimere ciascun pacchetto nella sua directory (una /opt
struttura) e creare foreste di collegamenti simbolici dalle directory dei pacchetti a una /usr
struttura. Questo è ciò che fa software come stow .
In sintesi, l'approccio Unix semplifica l'utilizzo dei file, la gestione dei file e la possibilità di interazione dei pacchetti; richiede un software di gestione dei pacchetti, ma è comunque auspicabile. L'approccio Windows semplifica la gestione manuale dei pacchetti, ma deve orientarsi verso il modello Unix per ottenere utili funzionalità.