Risposta breve: per ottenere tutto, è necessario scaricare i pacchetti sorgente singolarmente; non esiste un unico servizio di navigazione pubblica per Ubuntu generalmente disponibile oggi. Ma ci stiamo lavorando!
Risposta lunga:
Il codice sorgente canonico per tutta Ubuntu è disponibile come pacchetti sorgente. Puoi andare su https://launchpad.net/ubuntu/+source/hello , ad esempio, fare clic su uno dei numeri di versione e puoi scaricare i sorgenti dalla sezione Download. Per trovare la fonte per ogni versione di Hello mai pubblicata da Ubuntu, puoi seguire il link per visualizzare la sua cronologia di pubblicazione completa e fare clic su qualsiasi stringa del numero di versione da lì. Lo stesso modello di URL funziona per qualsiasi pacchetto sorgente; devi solo conoscere il nome del pacchetto sorgente.
I pacchetti sorgente sono canonici perché sono l'unità base con cui gli sviluppatori Ubuntu lavorano per sviluppare Ubuntu. Ma sono piuttosto ingombranti; spacchettare un pacchetto sorgente ha bisogno di alcuni strumenti. dget
, dal devscripts
pacchetto, può scaricare, verificare e decomprimere un pacchetto di origine in un comando se gli dai l'URL al file dsc.
Questo, ovviamente, non è molto conveniente.
Anni fa, ci fu uno sforzo per renderlo migliore. Ubuntu lo chiamò "Ubuntu Distributed Development", o UDD in breve, e sviluppò un sistema di controllo della versione distribuita chiamato Bazaar per cercare di risolvere questo problema. Come parte di questo sforzo, i pacchetti sorgente sono stati importati automaticamente nella piattaforma di hosting VCS di Bazaar su Launchpad man mano che venivano pubblicati. A quel tempo, si potrebbe teoricamente trovare il codice sorgente per qualsiasi pacchetto su code.launchpad.net
. Ad esempio, puoi ancora vedere le fonti importate da Bazaar per il hello
pacchetto per le versioni Ubuntu Precise e Trusty su https://code.launchpad.net/ubuntu/+source/hello .
Bazaar si è concentrato su una serie specifica di casi d'uso e aveva un'interfaccia a riga di comando molto ben ponderata. Jelmer Vernooij, uno dei suoi sviluppatori, ha scritto un'interessante retrospettiva sullo sviluppo di Bazaar , incluso il modo in cui questo si adattava agli altri sistemi di controllo della versione distribuita in quel momento.
Col tempo, Git prese il controllo del mondo e Bazaar prese posto in secondo piano. Nel frattempo, l'UDD aveva iniziato a mostrare le sue crepe. Un numero crescente di pacchetti non è riuscito a importare e per risolvere è stato necessario l'intervento manuale. Ciò significava che, anche se lo sviluppo di Ubuntu sui pacchetti sorgente continuava, la vista di Bazaar su quei pacchetti code.launchpad.net
non riusciva ad essere aggiornata.
Alla fine, l'importatore UDD è stato disattivato perché nessuno lo stava mantenendo e non si è ritenuto che valesse la pena farlo funzionare.
Allo stesso tempo, nel 2014 ho pubblicato alcune note su come stavo usando git per eseguire lo sviluppo di Ubuntu ; anche se al momento i pacchetti Ubuntu non venivano mantenuti in git in generale.
Questo flusso di lavoro basato su git è stato adottato dal mio team (il team di Ubuntu Server) e abbiamo continuato a lavorare per rendere disponibili le fonti di Ubuntu tramite git. Un collega e io abbiamo iniziato a scrivere una serie di blog (ancora incompiuta) che spiega cosa stiamo facendo.
I repository git che hai trovato per alcuni pacchetti sono il risultato del nostro importatore ( ~usd-import-team
). Stiamo ancora lavorando attivamente su questo, motivo per cui non tutti i pacchetti sono ancora disponibili in questo modo. Non siamo ancora nella fase "beta", prevediamo di reimportare tutti i pacchetti prima di essere pronti (rompendo tutti gli hash di commit precedenti) e non stiamo ancora aggiornando tutti i repository importati con l'ultimo sviluppo di Ubuntu. Ma dove abbiamo importato una versione particolare di un pacchetto, dovrebbe essere abbastanza accurato da navigare.
Speriamo di accelerare l'importazione di tutti i pacchetti e di mantenerli aggiornati automaticamente nei prossimi mesi.
Uno dei nostri obiettivi è esattamente quello di risolvere la domanda che stai ponendo: avere un unico posto ufficiale su Launchpad in cui è possibile sfogliare tutto il codice sorgente di Ubuntu.