Perché i repository Ubuntu non hanno le ultime versioni di software?


145

Perché i pacchetti nei repository ufficiali di Ubuntu sono più vecchi delle ultime versioni (upstream) di Debian Sid, PPA, autori, ecc.?


2
Questo in realtà accade per qualsiasi distribuzione, non solo per Ubuntu.
dr01,

9
@ dr01 Ci sono distribuzioni che hanno distribuzioni rolling che ottengono sempre aggiornamenti - quindi non tutte le distribuzioni sono conformi a questa domanda o ai cicli di sviluppo di Ubuntu
Thomas Ward

Risposte:


120

Una versione di Ubuntu passa attraverso diverse fasi prima di arrivare effettivamente al pubblico come prodotto finito:

  • Qualche tempo prima che Ubuntu lanciasse una versione, a un certo punto congela i suoi pacchetti.

  • Prima che venga rilasciata una versione ma dopo il blocco del pacchetto, il lavoro viene svolto principalmente per correggere tutti i bug e i problemi che potrebbero esserci in quei pacchetti. Le nuove versioni del pacchetto non vengono più importate nei repository dopo il blocco del pacchetto o delle funzionalità.

  • Quando si verifica il rilascio, ulteriori modifiche a tali pacchetti si verificano solo per la correzione di bug e problemi di sicurezza. Non ci sono più aggiornamenti ai pacchetti nel repository ufficiale anche se vengono rilasciate nuove versioni dei pacchetti.

La nuova versione dei pacchetti viene costantemente importata (da Debian) per la prossima versione di Ubuntu, fino a quando non si verifica il successivo blocco e lo stesso processo si ripete.

Ad esempio, puoi dare un'occhiata al programma di rilascio di 12.04 .

Puoi vedere che anche se 12.04 è stato rilasciato in aprile, nel 12 gennaio è successo qualcosa chiamato Debian Import Freeze .

Questo è solo il primo di molti stadi di congelamento che si verificano prima della versione effettiva e significa che a quel punto l'importazione di pacchetti da test Debian o arresti instabili e il lavoro inizia su di essi per personalizzare e risolvere i problemi con essi.

Non vengono effettuati aggiornamenti dopo quel punto in molti pacchetti e la versione che quel pacchetto aveva a quel punto è la versione presente e mantenuta per tutta la vita di una versione.

Quindi, anche se ci sono versioni superiori dello stesso pacchetto nei PPA degli sviluppatori o nei repository Ubuntu + 1, questi saranno inclusi solo nella prossima versione di Ubuntu.

Questo viene fatto per stabilità, sicurezza e funzionalità. Nuovi pacchetti bleeding importati continuamente nel repository principale significherebbero problemi e molti più problemi da risolvere. Un blocco nella versione dei pacchetti aiuta a risolverlo e rendere Ubuntu più sicuro e più stabile per l'utente finale.

Una nuova versione di Ubuntu viene rilasciata ogni 6 mesi, quindi ogni 6 mesi vengono preparati, testati, personalizzati e rilasciati nuovi pacchetti con una nuova versione. Le versioni future di un pacchetto possono essere installate nel proprio sistema tramite un PPA o semplicemente scaricandolo da un sito Web, ma la versione del pacchetto nel repository ufficiale rimane la stessa.

Per una maggiore comprensione e un'interessante panoramica di ciò che è accaduto a Ubuntu dalla 10.04 fino al lancio della 12.04, dai un'occhiata alla pagina ReleaseSchedule - LTS a LTS e agli aggiornamenti della versione stabile per una panoramica completa e una spiegazione di una versione stabile di Ubuntu.


2
Sembrano esserci eccezioni a questa politica, in particolare per i browser Web (Firefox, Chromium). Sebbene oltre il 95% dei pacchetti possa seguire le indicazioni di seguito, il browser Web potrebbe essere l'applicazione più utilizzata per la maggior parte degli utenti.
Dotpush,

Se si desidera il software più recente, utilizzare un repository PPA Launchpad.
iBug,

@iBug o usa una distribuzione diversa come Arch Linux o NixOS o installa Homebrew sul tuo sistema Ubuntu.
Boris,

16

Due ragioni. Il primo è abbastanza ovvio: richiede a un essere umano di dedicare tempo ad aggiornare il pacchetto quando esce un nuovo upstream. Il secondo è che se si sta eseguendo una versione stabile rispetto all'attuale versione di sviluppo, i pacchetti NON vengono intenzionalmente aggiornati volontariamente per evitare rotture. Vedi http://wiki.ubuntu.com/StableReleaseUpdates .


3
"richiede che un essere umano impieghi del tempo ad aggiornare il pacchetto quando esce un nuovo upstream" questo è chiaramente falso, tutto può essere reso automatizzato. La vera ragione è la seconda che hai citato.
gented

15

I pacchetti vengono congelati per il rilascio e non aggiornati successivamente per una serie di motivi. Se le nuove versioni sono state introdotte in post-release, la nuova versione ...

  • potrebbe portare nuovi bug, regredendo così alla funzionalità che era presente al momento del rilascio
  • ha bisogno di manodopera per impacchettare, testare e caricare
  • necessita di una propria serie di aggiornamenti di sicurezza
  • avrebbe bisogno di traduzioni aggiornate per la sua interfaccia utente
  • avrebbe bisogno di documentazione aggiornata (e traduzioni)
  • rende il supporto tecnico più impegnativo
  • potrebbe infastidire gli utenti che si sono abituati alle funzionalità della versione precedente
  • potrebbe richiedere dipendenze più recenti che potrebbero interrompere altre app se fossero state modificate nel repository
  • potrebbe rompere altri pacchetti che dipendono da questo
  • può interrompere script utente, modelli, strumenti, ecc. creati per la versione precedente

Detto questo, tieni presente che ci sono casi in cui Ubuntu esegue aggiornamenti completi delle versioni del software nel repository. Firefox per esempio.

Inoltre, esiste un repository ubuntu-backports che gli utenti possono scegliere quali aggiornamenti pacchetti software che non causeranno problemi come quelli sopra elencati. Non è abilitato per impostazione predefinita, quindi gli utenti devono accettarlo, il che viene fatto per eliminare la sorpresa di avere il software che cambia da sotto di te. Inoltre, non ha un organico pesante e quindi non sono sicuro della frequenza con cui i pacchetti ricevono effettivamente aggiornamenti.

Inoltre, il team SRU ha recentemente aggiornato un po 'le politiche che, si spera, renderanno un po' più semplice ottenere aggiornamenti dei pacchetti solo bugfix.


11

Normalmente gli aggiornamenti nelle versioni rilasciate di Ubuntu sono per la sicurezza e correzioni di bug, esempi di tali bug includono:

  • Bug che, in circostanze realistiche, possono causare direttamente una vulnerabilità della sicurezza. Questi vengono eseguiti dal team di sicurezza e sono documentati in SecurityTeam / UpdateProcedures.

  • Bug che rappresentano gravi regressioni dalla precedente versione di Ubuntu. Questo include pacchetti che sono totalmente inutilizzabili, come essere non installabili o andare in crash all'avvio.

  • Bug che, in circostanze realistiche, possono causare direttamente una perdita di dati dell'utente. Bug che non rientrano nelle categorie precedenti, ma (1) hanno una patch ovviamente sicura e (2) influenzano un'applicazione anziché pacchetti di infrastrutture critiche (come X.org o il kernel).

  • Per le versioni di supporto a lungo termine desideriamo regolarmente abilitare il nuovo hardware. Tali modifiche sono appropriate a condizione che possiamo garantire di non influire sugli aggiornamenti sull'hardware esistente. Ad esempio, le modalità di driver appena introdotti non devono sovrapporsi a driver precedentemente spediti. -Nuove versioni di software commerciale nell'archivio dei partner canonici.

    -FTBFS (Fails to Build From Source) può anche essere considerato. Si noti che in linea di principio il processo di rilascio garantisce che non vi siano binari che non sono creati da una fonte corrente. Di solito questi bug devono essere SRUed solo in combinazione con un'altra correzione di bug.

    -Per le nuove versioni upstream di pacchetti che forniscono nuove funzionalità, ma non correggono bug critici, è necessario invece richiedere un backport.

Tratto dall'eccellente pagina wiki StableReleaseUpdates .


11

Cercherò di rispondere alle tue domande in base alle mie esperienze passate da forum di Ubuntu e Ubuntu Planet.

Suppongo che mi sto solo chiedendo come vengono aggiornati i repository apt e da chi.

I repository APT vengono aggiornati dal team di packaging di Ubuntu. Il team di packaging ottiene tutti i pacchetti upstream dagli sviluppatori che eseguono un test iniziale del packaging e altre cose. Quindi il team di test esegue i test finali dando un segnale di via. Ma il team di confezionamento e i team di test sono molto cauti sulle dipendenze e i suoi effetti collaterali sul sistema stabile.

Quando c'è un ritardo, è perché lo sviluppatore non ha trasferito la versione più recente sul server pertinente?

Se vedi le modifiche a monte, ci sono migliaia di sviluppatori che vogliono spingere i loro pacchetti. Ma non tutti sono riusciti nel flusso principale questo perché per vari motivi. Supponiamo che l'applicazione Gedit sia adatta a una versione 2.2 e funzioni bene con Dbus 2.1 e Gtk 2.4, ecc. Dove la versione Gedit 2.4 (nuovissima) ha bisogno di Gtk 2.5 e Dbus2.3 per funzionare. Ora il team di testing e packaging (anche il team di rilascio) non lo accetta perché la modifica di un sistema esistente con vecchio dbus e GTK con quello nuovo rompe ogni altra cosa. Spero che tu abbia il punto dell'inferno della dipendenza.

C'è molto più lavoro per lo sviluppatore nel portare il rilascio in una forma che il repository può usare?

Non verso il canale a monte. Ma per il canale di rilascio sì :).

PS: Potrebbero esserci alcune modifiche apportate al processo ora in senso canonico rispetto a quanto spiegato sopra. Ma più o meno lo stesso.


6

La risposta accettata nel link fossfreedom pubblicato come commento è molto buona.

In generale, le versioni dei pacchetti rilasciate dopo la prima parte del processo di sviluppo della nuova versione non compaiono nei repository principali di quella versione in modo che una versione affidabile di Ubuntu possa essere testata a fondo.

È possibile che alcuni pacchetti vengano rilasciati nel repository backport se vengono incorporati correttamente in una futura versione di Ubuntu e se gli sviluppatori ritengono che funzionerà anche con quelli precedenti. I backport possono essere attivati ​​e disattivati ​​nel Software Center (Modifica-> Sorgenti software-> Scheda Aggiornamenti-> Aggiornamenti non supportati)


1
Come menzionato altrove, i backport sono rari e non ce ne sono molti.
Thomas Ward

-3

La risposta non è completa

Ci sono ALCUNI pacchetti, che possono essere installati in una versione di backport da Software Center. Nella parte destra della finestra, appena a sinistra del pulsante Installa / Cambia, è presente una casella di selezione in cui è possibile modificare la versione.

Exempli gratia: il default conkyè adesso 1.8.xe ce l'hai 1.9.0 (precise-backports)come backport. Naturalmente, i backport dovrebbero essere prima abilitati.

Fonte: http://bugs.launchpad.net/ubuntu/+source/conky/+bug/1003727

MODIFICA: Come indicato di seguito, non tutti i pacchetti hanno un backport, ma potresti avere un accesso anticipato a volte se sei abbastanza fortunato.


3
I backport non sono disponibili per ogni pacchetto ...
papukaija,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.