Sappiamo tutti quanto sia importante mantenere aggiornato il proprio sistema operativo, ma è parimenti esperienza comune che spesso siano proprio gli aggiornamenti a introdurre nuovi bug. Ubuntu segue delle linee guida ben precise per gestire questa situazione.
La chiave di volta dell´intero discorso è che, una volta rilasciata la release, gli aggiornamenti non si fanno affatto, a meno che non riguardino vulnerabilità di sicurezza o bug particolarmente significativi. Addirittura, nell´ottica di stabilizzare la release, già durante le ultime fasi di sviluppo l´ingresso di nuovi pacchetti dei vari software è sottoposto ad un controllo particolarmente rigido (una fase nota agli sviluppatori come "Feature Freeze", appunto).
D´altra parte, però, gli "Ubuntu Developer" sono ben conosci che ci sono fasce di utenti poco interessate alla stabilità assoluta e ben disposti ad affrontare qualche rischio pur di avere a disposizione software recente, ricco di nuove funzionalità. Vediamo allora in che modo Ubuntu riesce a gestire queste esigenze contrapposte.
La utility Sorgenti Software (nel menu "Sistema"), è il luogo in cui si possono controllare i repository della nostra installazione (gli smanettoni possono modificare direttamente /etc/apt/sources.list). Nella tab "Aggiornamenti" ci sono quattro check box che abilitano altrettante componenti dell´archivio di Ubuntu. Ipotizzando di utilizzare Intrepid (ma il discorso vale per tutte le release) abbiamo le voci:
- intrepid-security. Questo è un repository speciale gestito autonomamente dall´Ubuntu Security Team nel quale confluiscono gli aggiornamenti del software affetto da vulnerabilità di sicurezza. Proprio per la sua criticità, non è mirrorato come il resto dell´archivio, e si scarica direttamente da archive.ubuntu.com. A meno che non sappiate davvero cosa state facendo, tenetelo sempre attivo;
- intrepid-proposed. Ipotizziamo che qualcuno scopra un bug. Dopo il "triaging" e le discussioni su Launchpad e nelle ML degli sviluppatori, si decide che il bug è sufficientemente grave da meritare uno SRU (Stable Release Upgrade), ovvero una procedura di aggiornamento dei pacchetti per le distro già rilasciate. Talvolta può capitare che nel correggere un bug se ne introduca un altro, e noi decisamente non vogliamo introdurre una regressione nei computer degli "ubunteri". Per questo motivo, prima che un aggiornamento venga ufficialmente proposto agli utenti, il nuovo pacchetto passa per questo repository da cui sviluppatori e utenti ardimentosi possono aggiornare e testare le loro macchine. Quando un congruo numero di tester ha dato il suo ok, il pacchetto diventa un aggiornamento ufficiale e passa in -updates. Tipicamente le regressioni sono piuttosto rare, quindi su macchine non particolarmente critiche può essere una buona idea attivare questo pocket, in modo da avere prima i bugfix. Se però succedono disastri, non dite che non vi abbiamo avvertito;
- intrepid-updates. Da qui sono tipicamente scaricati la grande maggioranza degli aggiornamenti. È in sostanza il repository in cui sono dispiegati i fix dopo il test in -proposed (vedi paragrafo precedente). Anche in questo caso, tenere la casellina spuntata è decisamente una buona idea;
- intrepid-backports. Questo repository è gestito in maniera diversa dagli altri perché qui non troviamo aggiornamenti in senso stretto, ma software nuovo o più recente. Questo tipo di software entra ovviamente di diritto nella release di sviluppo, ma proprio per soddisfare le esigenze degli utenti delle release stabili viene offerto anche a loro, a condizione che possa funzionare sulle versioni più vecchie (talvolta non è possibile perché richiede versioni più recenti dei pacchetti "core" come librerie di sistema, kernel o altro. L´attivazione di questo componente non è indispensabile, ma è utile se ci servono software aggiornati, con i noti pro e contro che questo comporta.