Repository e distribuzioni ========================== Quando si "installa Linux", si sta generalmente installando una distribuzione, ovvero l'insieme di un sistema operativo GNU/Linux, un'interfaccia utente e dei programmi applicativi che girano sullo stesso. Parte integrante di una distribuzione sono i cosidetti repository, ovvero delle raccolte di software in pacchetti di formato specifico e pronti per l'installazione, come ad esempio .deb per Debian ed Ubuntu, o .rpm per Fedora. L'accesso principale a questi repository avviene generalmente tramite un gestore di pacchetti, ovvero un insieme di programmi in grado di gestire ricerca, download, installazione e rimozione di tali programmi; alcuni esempi sono apt-get e i suoi *front-end* per i .deb o yum per i .rpm. Le distribuzioni offrono generalmente diversi repository a cui accedere tramite gestore di pacchetti; generalmente viene fatta una distinzione tra programmi di base, sui quali si effettua la maggior parte dei test, e programmi aggiuntivi, meno controllati. Ad esempio ubuntu suddivide i programmi in main ed universe. Un altro repository potrebbe poi contenere programmi scaricabili e distribuibili, ma con restrizioni di licenza che li rendono non liberi, ad esempio restricted e multiverse di ubuntu, o non-free di debian. È poi possibile installare programmi di terze parti, sia tramite repository non ufficiali che tramite download diretto del pacchetto; questo può però comportare rischi maggiori, e richiede accortezza nel verificare l'origine del programma e la sua compatibilità con il resto del sistema. Versioni ed aggiornamenti ------------------------- La gestione delle versioni dei programmi e librerie presenti nei repository è poi uno dei punti nei quali si notano maggiori differenze tra una distribuzione e l'altra. Innanzitutto si ha la distinzione tra *rolling release* e *versioned release*: la prima consiste nell'aggiornare continuamente i pacchetti indipendentemente gli uni dagli altri, la seconda nel rilasciare periodicamente nuove versioni nelle quali si aggiorna tutto il sistema e limitarsi a bugfix ed aggiornamenti di sicurezza tra una release e l'altra. Il sistema a versioni offre in generale maggiore stabilità, dato che gli aggiornamenti vengono testati prima di essere rilasciati al pubblico, ed è usato dalle distribuzioni più diffuse come Debian, Fedora ed Ubuntu; il suo principale svantaggio è il ritardo con cui si hanno a disposizione le nuove versioni dei pacchetti, soprattutto per quello che riguarda programmi dallo sviluppo molto rapido. Il sistema delle *rolling release*, al contrario, permette di avere un sistema sempre aggiornato, al prezzo di tollerare eventuali problemi in fase di installazione delle nuove versioni: per questo motivo viene usato praticamente solo in distribuzioni per smanettoni come Gentoo o Arch, i cui utenti non hanno problemi ad incontrare e risolvere malfunzionamenti anche gravi. Un ulteriore distinzione sta nella frequenza e nella gestione dei rilasci di nuove versioni: distribuzioni come Ubuntu e Fedora stabiliscono un calendario abbastanza rigido nei quali i sei mesi di intervallo tra una versione e l'altra sono suddivisi in una fase di sviluppo in cui cercare di aggiungere nuove funzionalità ed una fase di testing nella quale risolvere i problemi, eventualmente rinunciando a quanto non è stato possibile far funzionare in tempo. Distribuzioni come Debian, al contrario, basano la suddivisione tra le fasi in base alle funzionalità: quando lo sviluppo ha raggiunto gli obiettivi che ci si era prefissi lo si blocca e si passa alla fase di testing e risoluzione dei problemi, quando infine tutti i bug importanti sono stati chiusi si procede con il rilascio. Anche qui si ha un compromesso tra maggiore regolarità ed aggiornamento nel primo caso e maggiore stabilità nel secondo. Un ultima distinzione si ha infine nella durata del supporto per le versioni rilasciate in passato: se ad esempio Fedora fornisce aggiornamenti di sicurezza solo per l'ultima versione, Ubuntu le mantiene da 9 mesi a 5 anni, a seconda delle versioni e Debian offre supporto fino ad un anno dopo l'uscita della versione stabile successiva, in modo da venire incontro anche alle esigenze di sistemi server, dove gli aggiornamenti possono causare problemi maggiori.